In short I have re-written the way layouts work in Adaptivetheme to support mobile, tablet and standard screens.
Adaptivetheme 7.x-2.x uses media queries combined with a more flexible approach to setting values for the sidebars, page width, max width (for responsive layouts), and you can customize the media query - all in the theme settings.
Adaptivetheme can now handle both responsive and adaptive layouts - simply use percentages to enable a responsive layout, or pixels to do adaptive. You can also use ems if you so desire - the layout engine does not care about what unit type you want to use.
You can mix and match responsive and adaptive layouts also - say you want an adaptive approach for standard screens and tablets, but a fully responsive approach for smaller screens. You can apply up to 5 independent layouts each with unique values, unit, sidebar positions (there are also 5 choices for sidebar layout), and of course enter your media query. The theme ships with each layout per-configured so you're not in the deep in strait off.
One big change from all previous versions of Adaptivetheme is that we now allow any value to be input for sidebar width, page width and max-width (max-width only applies to responsive layouts). Previous versions forced you to use per-configured column widths, such as 60px. I found this approach extremely frustrating when working with media queries and really you need absolute control over every pixel. So now if you want your page width to be 992px, you can, and that's a big win for those wanting to use their own grid and not 960 12/16.
Additionally we no longer write the layout CSS into the head - this was fine for previous versions as it was a very small amount of CSS with pretty much zero performance loss, however with media queries writing the CSS into the head has some major flaws - respond.js cannot parse it so supporting < IE8 is nearly impossible, there's more CSS and simply a lot more PHP to process on each page load and frankly I just didn't like it. The solution has been to write custom validate and submit functions that process the layout CSS and generate a small CSS file that is saved in your public files. This is really the ideal solution because we get cleaner output in our markup, we're not processing a tonne of PHP on each page load (only once when you click save on the theme settings and the file generates), and the biggest win is that respond.js can parse the file and give full support to legacy versions of IE.
As stated we're using respond.js to support IE. Respond.js is a very small script and only supports min-width and max-width, not -device-width, and its limited in other ways, however its small and very fast and only executes if required. For the vast majority of situations I think its a great solution.
I've started to update our free contrib sub-themes - both Pixture Reloaded 7.x-2.x and Corolla 7.x-2.x support the new layout engine and Corolla in particular has new styling to be fully responsive - right down to 240px width it will look great. I've attached some simple screenshots to show Corolla in various page widths - take note of the branding elements and the font sizes - we also handle the top menu in Corolla very differently in the different screen sizes but this is not shown in these shots. Note that the 7.x-2.x version of Corolla is now a sub-theme of Adaptivetheme 7.x-2.x).
Keep in mind that these screenshots are just one configuration - you can of course change this to whatever you want, just using theme settings. Of course Corolla still needs some style love - I've focused on the big picture stuff and I still need to do things like reducing margins and padding in the smaller screens, working on font sizes and so on.
Comments
The Best Responsive Base Theme
I must say, your adaptive theme has the cleanest markup, and frankly implements the whole responsive layout theme settings in the most easiest to understand way. Count me in with testing and reporting any bugs if i bump into any.
Wow, thanks so much for this feedback
Wow, thanks so much for this feedback - I worked really hard on the usability and accessibility of the theme settings form, so I am really pleased you found it easy to understand. Just to quantify this - I made extensive use of form #states to hide and show only the settings that are relevant, and used a lot of fieldsets to group related settings. All this took much additional CSS and design work to make it all to "work visually" and flow nicely. I also placed all the settings at the very top of the form and used vertical tabs to break it all up - all in all this works very well and keeps it simple - especially for themes like Corolla, Sky and Pixture Reloaded that include all those extra settings for fonts, rounded corners and and so on.
except: i can't change css!
changes i make to the color/colors.css file - do not get used. when i check the page via Inspect Element, it shows that instead of that file, there's some convoluted variant being used instead. i was able to make changes to navigation.css, but colors.css.
this is getting frustrating.
Why would you hack colors.css
Why would you hack colors.css? If you want to change colors use the color settings, of course what you are doing is not going to work - all you are doing is creating errors in the color shift and replace system. Sorry, I can't change that - its how Drupal and the Color Module work. Its extremely well documented that to override something you should use a custom CSS file or even sub-theme it, for goodness sake we even built a sub-theme to make this dead easy - Footheme.
skins
I cannot get skins working. I see they are loaded by default with the fusion theme, but as a beginner to Drupal I have been able to get further with the adaptive subthemes.
@weblady, I have Skinr
@weblady, I have Skinr running no problems, what seems to be the problem?
Main content overlapping sidebars
I really like the look of Sky and have downloaded, enabled, created a sub from Footheme. Everything seems to be installed and working fine, but I can't whenever I try to output pages with just one sidebar on the right(leaving the other one empty), the main content overlaps the right sidebar. If I try using just one sidebar on the left, the layout works fine.
What's odd is that if I use the left-main-right sidebar mode, everything works fine as long as I have something in the left sidebar (a small rss feed icon will work). Then the page displays correctly, though not the way I want it. If I remove the left sidebar content, the main content again overlaps the right sidebar.
Everything is pretty much set as default. I tried using Footheme directly and even Corolla, and tried varying the sizes (though I prefer 960), but in every case, it works the same way. IE/Chrome/Firefox, Windows vista 32, still working off my localhost.
I've looked for an answer thorough the forums and Google and found something close, but no one else with this same issue. Any suggestions would be greatly appreciated.
I'm only into my 4th month with Drupal and still learning as I go, but this is pretty much the last stage of my project. I'd been working with Bartik up to now (doubt that's relevant, but just in case)
Thanks so much.
Dan
p.s.
Sorry - forgot to add that it works that way with pages output by views, as well as pages output by Drupal and display suite. Any suggestions would be appreciated.
SOLVED
Sorry - I finally tracked it down to a missing css file (...responsive.layout.css) Once I put it in there, everything worked normally. I'm a happy camper now, because I like this theme (and I've tried many).
Dan
Add new comment