Skip to:

Opened 13 years ago

Closed 12 years ago

Last modified 3 years ago

#3662 closed enhancement (fixed)

New child theme

Reported by: djpaul's profile DJPaul Owned by:
Milestone: 1.6 Priority: normal
Severity: normal Version:
Component: Templates Keywords:


A child theme of bp-default that flexes some muscle; e.g. a bp-forums child theme, or bp-activity.
We're imagining a smallish child theme. A few replacement templates, some awesome CSS, and that's it.

Attachments (2)

concept.jpg (163.2 KB) - added by karmatosed 13 years ago.
concept_two.jpg (160.9 KB) - added by karmatosed 13 years ago.

Download all attachments as: .zip

Change History (34)

#1 @DJPaul
13 years ago

John raised this idea at the dev chat, and we figured it's an especially nice idea as it would give our UI/front-end expert contributors something really meaty during the 1.6 cycle. You'd have freedom, and would be working closely with the core team on this!

#2 @karmatosed
13 years ago

I would love to get involved with this. Activity sounds really cool, I've been playing with lifestreaming using BuddyPress so could bring some ideas from that too. Be great to also focus on design showing types of activity.

I'm just thrilled for 1.6.... This will be fun :)

#3 @karmatosed
13 years ago

I had a chat with @hnla about this and reached out to @modemlooper too. I'm thinking start with getting a few people involved and look specifically at the activity stream first then maybe custom headers (ala Twenty-Eleven) and a few other UI tweaks. Here are my thoughts so far:


  • A different comment styling
  • Threaded javascript comments - collapsable possibly
  • Different activity type styling
  • Form styling
  • Tweak the background styling a bit probably with a border or something to make the site less default
  • Profile image fancy styling using some natty CSS transformations maybe?

Possible UI changes - if get lots of people want to do this:

  • Custom / rotating headers - maybe include some ask for illustration / graphical / photo contributions in community (this may be nice to include to get others onboard)
  • Google or other fonts - this could be done to make it different from default easily
  • Blog post elements styling spruce up and changes - maybe a fancy blockquote style, list
  • Comment form styling - get it like use in activity

Other thoughts / if get lots of people want to do this:

  • Profiles could be an area to consider if time
  • Forums could be good but again a 'if time'

I'd suggest first up see how many are up for this then allocate various tasks / see who wants to do what and set a few week / 2 week deadlines. Then we can if time move into other areas.

#4 @modemlooper
13 years ago

Those all sound good, I think we should take default.CSS and separate it into layout.CSS and style.CSS for easier child theme customization. You can argue all you want about extra http requests but people are all ready doing it via child theme CSS

Last edited 13 years ago by modemlooper (previous) (diff)

#5 @karmatosed
13 years ago

This kind of is a child theme not a new default so probably better to create a ticket for that with default if intended for better child themes. Not saying shouldn't be done that's a group choice more that this is about new stuff in a child.

@modemlooper: Did you do some JavaScript stuff a while back with comments? Be great to include something along those lines if you had time.

#6 @modemlooper
13 years ago

it was ajax comment like status updates but I think the code is lost.

#7 @karmatosed
13 years ago

I've gone to the drawing board after a few weeks ago's developer chat and clarification on what this should be. As a result I've taken the idea @DJPaul provided and said was cool to use, of a Twitter like child theme. Attached is a mockup of the concept (concept.jpg). This is a quick sketch concept as figure less time on design more time on creating better here then polish once close to completion to try and meet deadline.

It would break down like this:

  1. Groups, Forums - somehow these are turned off in theme maybe?
  2. This is literally the members directory in sense you can see that (maybe link not sure), activity and user profile.
  3. Under the profile you'd be able to do 2 customisations: custom background (somehow linking to the WordPress one?), link colour.
  4. Favourites would exist still along with friends.
  5. Possibly change the view between friend and your activity

That's it pretty much.

Way I see it working is in week html done then move into creating as a theme.

Love to work with others on this and if nobody else does want really would like that core dev help particularly for the custom background and link colour ability along with properly turning off components from the start in the theme.

Interested in thoughts.

13 years ago

#8 @hnla
13 years ago

Having a think about this, and will be attempting to set aside a little time to help out.

I was thinking this was almost simply a profile with nearly all components other than activity stream disabled , members, groups, forums etc and just run on the main user profile, your only ever interested in what you / your friends are posting no need for members listing or the other BP parts.

#9 @karmatosed
13 years ago

We could also make this a html5 child theme fairly easy to do if using only a very few files maybe?

Totally agree in turning off as much as possible on this one. Members perhaps to see everyone but do you see everyone on Twitter.. well no so maybe right to turn off?

Landing page would be your activity maybe a setting to be all site activity if not logged in or you can se this under profile?

I do like idea of keeping the favourite stuff though, what do you think?

#10 @hnla
13 years ago

That would have been my intention, personally am starting to code in a quasi html5 / xhtml fashion from herein :)

No I would say turn off members you only see your friends as on twitter, people could go to your profile to request friendship? or perhaps that not possible without a list aka members directory.

Yep Favourites always a good thing people like being able to tag stuff to find again.

Not sure what logged out view should be perhaps a nice but simple reg / login form with a equally striped down site activity list just to show there is activity within the site.

#11 @karmatosed
13 years ago

Like idea of registration form / login form on front page simply - really nice simple approach and lock down for communities. Would it be possible though, to enable people to view members if went to their url (exactly like twitter)?

#12 @DJPaul
13 years ago

As this starts to get built, I should be about done with the Akismet stuff - so if any core changes or dev assistance are required, I'm happy to pick that up from a core dev perspective.

#13 @karmatosed
13 years ago

That would be great.

@hnla and me had a skype about this last night and to summarise that:

  • First stage: I'm going to this week create a html template of the site so I can poke some design ideas
  • Second stage: @hnla will take this into a child theme and I'm there for support tasks on that - not importing any styles all fresh CSS and html5 as such a small amount can do
  • Third stage: Running along side second ish and done bit in first is responsive theme - going 'Mobile First' approach
  • Fourth stage: html5ification of the activity stream and BuddyPress stuff doing


  • Fifth stage: During review phase the options and functionality needs to happen - this will be where we will need core dev hands majorly (before is also good).
    • Without user having to turn off components so no special set up is needed
    • Custom background linked to profile
    • Custom link colour linked to profile
    • Possibly other core stuff / heavier dev unsure at this stage would come up during creation
  • Sixth stage: Mobile sanity check - Hopefully getting @modemlooper in at this point if not before


Theme format:

  • HTML5
  • Mobile First responsive
  • Using normalize.css rather than reset.css : - using some of the print stuff and html normalization from this also


  • How should we host this on Git?
  • We propose using modernizr but interested in feedback from core devs on if want a html5 shim / respond.js or modernizr hand rolled solution. Specifically if anyone has feelings for / against any route.
Last edited 13 years ago by karmatosed (previous) (diff)

#14 @karmatosed
13 years ago

I've done a chunk of revisions to the design after considering it a little.

  • Using the new merged menu from to have one bar at the top - we could do with working out if can how to add 2 menu items there. Should cut down on development time this already being there style wise.
  • We do need to work out the responsiveness tweak for the admin bar if using it like this but can cross that bridge during development.
  • Changed icons for actions to have colour on hover and greyscale on non hover
  • Darkened the load more button
  • Changed some spacing on the site

New version is called concept_two.jpg

I've also got some files going into the drop box for you @hnla then we can work this next week on the skeleton if you are free.

#15 @karmatosed
12 years ago

Just thought would update this ticket to keep everyone in loop.

Current Status:

  • Design was finished today from now on it's just tweaks and fixes to any padding, margins or things broken.
  • Ready for testing and code refinement

Outstanding Todos:

  • Show / hide comments @hnla is on case :)
  • User backgrounds, link colour @DJPaul is on case :)
  • RTL support
  • Responsive device testing (it's been set up to work just needs testing)

Demo can be tried here:
username: statusdemo
password: status_d3mo

Please try it if you can this needs to have things kicked around a bit. If you find an issue, design meh or bug please report it here.

Last edited 12 years ago by karmatosed (previous) (diff)

#16 @karmatosed
12 years ago

Today's update is around the show / hide. @vebailovity has come in to help and @hnla is currently reviewing and adding this into the theme to go with the previous work he's been doing with scripting.

So, in theory we should have the show / hide up and ready for some UI enhancements today / tomorrow. Leaving us with more or less a large chunk of the development done.

#17 @karmatosed
12 years ago

Update on theme is we've now tested multisite and done a few other changes. We have device tested first round and also sorted the show / hide comments as already said.

We still have the following outstanding but can go into beta whilst those get done:

  • User backgrounds, link colour @DJPaul is on case :)
  • RTL support

In short, please test this anyone who can and we're ready to go when 1.6 is ready to go into beta.

#18 @karmatosed
12 years ago

We now have per user background and colour options and we also have numerous CSS changes and a new menu styling.

Left to do is RTL support and device testing.

#19 @chrisclayton
12 years ago

  • Cc chrisclayton added

Just thinking out loud here, but would this be better off as a parent theme, rather than a child theme? from a quick look at the github repo (, the theme only really seems to be borrowing afew lines from the bp-default's functions.php and about three template files, everything else is being overwritten.

Way too many files for a child theme in my honest opinion... Does this prove the inflexibility of bp-default?

Last edited 12 years ago by chrisclayton (previous) (diff)

#20 @karmatosed
12 years ago

We do inherit scripts / files and for ease of updating lets stick to the child theme. There isn't any limit to amount of files in a child theme so that's not an issue. The discussion for inflexibility is a whole other barrel of fish :) - this is just a new theme and fine being a child to get the scripting and other things automatically with updates. It actually has more than a few files and scripts it inherits so makes sense being a child.

We are still in need of testers so if you want to check it out and give it a whirl please do - more people play with it better it becomes. Just report any issues here (or if able on Github).

Last edited 12 years ago by karmatosed (previous) (diff)

#21 @hnla
12 years ago

@Chris It has to be a child theme Chris as there isn't really such as thing as a full theme if working with BP; it doesn't work in the same fashion as WP.

We have to inherit certain aspects such as functions.php, we do inherit aspects such as global.js / ajax as it's pointless re-writing these aspects as they are complex and perform their duties well enough.

There aren't too many files in the child theme, although it does tend to look that way partly due to the WP post templates being introduced, it's not a case of inflexibility though in replicating those files rather than leaving them in BP-default as there were two main points to this theme.

1/ The primary purpose was to demonstrate the use of BP to produce a theme that was more specific in functionality (one of the issues with 'out of the box' BP is it's somewhat unfocussed and only really feels as though it comes into it's own when it is integrated into a larger WP site and customised accordingly) Thus the theme was designed to showcase BP used in a more deliberate manner, in this case replicating something along the lines of Twitter with the theme focussing on 'Activity' and user account rather than 'Groups' or ' forums' or even blogging

2/ The second purpose of the theme was to re-factor the markup as much as possible from head to toe, and in that respect it was necessary and desired to overload all the main template files and re-write the CSS from scratch.

I think we achieved these two aims pretty well and the theme is pretty well re-factored to HTML5 and with a responsive design element.

#22 @chrisclayton
12 years ago

@karmatosed - Was downloading & uploading it while writing my last comment and have been playing with it ever since. :)

@hnla - with your first point - i think we'll have to agree to disagree. All of my themes have been parent themes and they have worked fine... (i never touch, nor use the default theme) The only problem with maintaining a BuddyPress parent theme is that you have to keep global.js and ajax.php (and other scary files) up to date, and since this is a project run and maintained by the core BuddyPress team, that isn't really an issue.

Maybe i'm wrong... Please enlighten me, what's the difference between a BP parent theme and a WordPress parent theme? (except that one requires a plugin - to fix that all you really need to do is kill the theme and display a notice if the user doesn't have BuddyPress active.

"Re-factor the markup as much as possible from head to toe"
To me, that IS the difference between a parent theme and a child theme.

Here's a quote from Justin Tadlock that might help express my concerns...
"When a theme developer creates a child theme, things become problematic because that child theme might eventually need an update. If you’re a theme developer and are building a child theme with a 20kb functions file and five or six custom templates, I can assure you that you’re doing it wrong. I’ve even had to tell myself this. What you should really be creating is a parent theme. Child themes from theme developers should be nothing more than a stylesheet and a few functions. This idea of releasing advanced child themes just creates the same problem child themes were meant to solve: upgradability." -

When buddypress updates and we find a bug inside one of the complex looking functions in functions.php how are we going to update the theme? how are they going to customize their theme?

"I think we achieved these two aims pretty well and the theme is pretty well re-factored to HTML5 and with a responsive design element. "

I think you did too - i just think a child theme is the wrong way to go about it.

Last edited 12 years ago by chrisclayton (previous) (diff)

#23 @karmatosed
12 years ago

For the reasons expressed before we won't be changing this from a child theme. I understand points of view but in this case a child theme is a valid option. We use a lot of files as already said from parent.

I understand everyone has their own views but it was decided with consideration and is the right path in this case. There are a lot of differences between BP and WP themes but this ticket probably isn't the best discussion point for this. I'd be happy to discuss more in general about BP / WP themeing with you if you wish you can email me at karmatosed@ gmail . com Chris. It's not the place to do that on this ticket though :) Aside from that the simple fact is we do use a lot of parent files - that alone justifies the choice in this case.

Great you are trying it out that's cool we need more eyeballs :) Thanks for helping with that and please give feedback.

Last edited 12 years ago by karmatosed (previous) (diff)

#24 @chrisclayton
12 years ago

That's fine. Just thought i'd express my concerns...

#25 @chrisclayton
12 years ago

  • Cc chrisclayton removed

#26 @hnla
12 years ago

@karmatosed this is really quite a generic open ticket on the issue of child theme so the comments are not that out of place, although would agree they do not want to ramble on at too great a length, however Chris has posed questions and retorts that beg a response, if further discussions are merited they should actually continue in the support forum rather than private email.

@Chris While I think we both actually have a similar take on themeing BP ( I too take nothing from bp except js files and overwrite all theme files and css ) and in that respect could copy over js files and do away with template: bp-default in headers so I take your point, although as said we took this route which is probably less of a headache maintenance wise in the long run.

#27 @karmatosed
12 years ago

It was a general chat extending for someone interested in BP theme nothing related to theme so all good :)

Last edited 12 years ago by karmatosed (previous) (diff)

#28 @sooskriszta
12 years ago

@DJPaul In view of the upcoming bundled theme, do you still expect to work on a child theme for BP Default?

#29 @DJPaul
12 years ago

@sooskriszta Karmatosed, hnla, and crew have already made this theme; it's called Status, and you can grab the current dev version from It's not going to be bundled with BuddyPress 1.6 release, it will be distributed via We can probably close this ticket once the theme is released.

The Theme Compatibility layer is going to take a couple of months to implement and get into a future BuddyPress release. :)

#30 @DJPaul
12 years ago

  • Resolution set to fixed
  • Status changed from new to closed

Closing ticket as Status ( is undergoing a final pre-theme review review this week, and everything looks good. Big props to karmatosed, hnla, Ve, DJPaul, mercime.

#31 @DJPaul
8 years ago

  • Component changed from Appearance - Template Parts to Templates

#32 @DJPaul
8 years ago

  • Type changed from task to enhancement
Note: See TracTickets for help on using tickets.