improved layout flexibility

This commit is contained in:
B Mathis 2010-03-10 13:59:18 -06:00
parent 33bca7246e
commit 42251dddca
27 changed files with 124 additions and 328 deletions

View File

@ -1,5 +1,5 @@
#footer #footer
.page_width .content
Copyright © #{Time.now.strftime('%Y')} - #{page.blog_title} - Copyright © #{Time.now.strftime('%Y')} - #{page.blog_title} -
%span.credit Powered by <a href="http://octopress.org">Octopress</a> %span.credit Powered by <a href="http://octopress.org">Octopress</a>

View File

@ -1,6 +1,7 @@
.page_width .content
%a.title(href="/")=page.blog_title %h1
- if page.respond_to? :google_custom_search_id %a.title(href="/")=page.blog_title
- if page.respond_to?(:google_custom_search_id) && page.google_custom_search_id
#search #search
%form(action="http://www.google.com/cse" id="cse-search-box") %form(action="http://www.google.com/cse" id="cse-search-box")
%input(type="hidden" name="cx" value="#{page.google_custom_search_id}") %input(type="hidden" name="cx" value="#{page.google_custom_search_id}")

View File

@ -1,4 +1,4 @@
.page_width .content
%ul %ul
%li.alpha %li.alpha
%a(href="/") Blog %a(href="/") Blog

View File

@ -25,8 +25,8 @@ google_analytics_tracking_id:
#header= include "header.haml" #header= include "header.haml"
#nav= include "navigation.haml" #nav= include "navigation.haml"
#page #page
.page_width #content
#main #main
.blog= include "post.haml" .blog.content= include "post.haml"
#sidebar= include "sidebar.haml" #sidebar= include "sidebar.haml"
= include "footer.haml" = include "footer.haml"

View File

@ -25,7 +25,8 @@ google_analytics_tracking_id:
#header= include "header.haml" #header= include "header.haml"
#nav= include "navigation.haml" #nav= include "navigation.haml"
#page #page
.page_width #content
#main= preserve rp(content) #main
.content= preserve rp(content)
#sidebar= include "sidebar.haml" #sidebar= include "sidebar.haml"
= include "footer.haml" = include "footer.haml"

View File

@ -1,5 +1,6 @@
--- ---
title: Hello World! I'm Octopress! title: Hello World! I'm Octopress!
updated: March 10th, 2010
--- ---
**Octopress is a blogging framework designed for hackers**, based on [Jekyll](http://github.com/mojombo/jekyll) the blog aware static site generator powering [Github pages](http://pages.github.com/). **Octopress is a blogging framework designed for hackers**, based on [Jekyll](http://github.com/mojombo/jekyll) the blog aware static site generator powering [Github pages](http://pages.github.com/).

View File

@ -17,7 +17,7 @@ function addExpander(div){
function toggleExpander(expander){ function toggleExpander(expander){
var html = ''; var html = '';
var expanderPos = expander.getPosition().y; var expanderPos = expander.getPosition().y;
if($('main').toggleClass('expanded').hasClass('expanded')) if($('page').toggleClass('expanded').hasClass('expanded'))
html = '&laquo; contract'; html = '&laquo; contract';
else else
html = 'expand &raquo;'; html = 'expand &raquo;';

View File

@ -1,20 +1,52 @@
!page_width = 900px
!main_width = 620px
!page_pad = 30px !page_pad = 30px
!sidebar_margin = 30px !page_width = 980px
!sidebar_width = !page_width - !main_width - !sidebar_margin !sidebar_margin = 25px
!pad = 15px !sidebar_width = 250px
!default_border_radius = 4px !default_border_radius = 4px
html body html body
background-color= !body_bg background-color: #{!body_bg}
color= !body_color color: #{!body_color}
a a
color= !link_color color: #{!link_color}
&:hover, &:focus
color: #{saturate(darken(!link_color, 15), 20)}
&:visited
color: #{darken(adjust_hue(!link_color, 70), 10)}
.page_width #header, #footer, #nav
width= !page_width .content
position: relative
margin: 0 auto
width: #{!page_width - !page_pad}
padding: 0 #{!page_pad/2}
#page, #header, #footer, #nav
min-width: #{!page_width}
#page, #content, .content
+pie-clearfix
#content
margin: 0 auto margin: 0 auto
padding: width: #{!page_width - !sidebar_width - !page_pad/2}
left= !page_pad padding: 0 #{!sidebar_width} 0 #{!page_pad/2}
right= !page_pad #main
float: left
width: 100%
.content
padding-right: #{!sidebar_margin}
#sidebar
float: left
width: #{!sidebar_width - !page_pad}
margin: 0 -100% 0 0
padding: #{!page_pad} 0 #{!page_pad} #{!page_pad}
#page.expanded
#content
width: #{!page_width}
padding: 0
#sidebar
float: none
margin: 0
padding: 0 0 #{!page_pad}

View File

@ -1,10 +1,7 @@
@import compass/utilities
@import compass/css3 @import compass/css3
@import library/reset.sass @import library/reset.sass
@import library/clearfix.sass
@import library/border_radius.sass
@import library/easy_box_shadow.sass
@import library/list_borders.sass @import library/list_borders.sass
@import library/typography.sass @import library/typography.sass
@import library/link_colors.sass @import library/link_colors.sass
@import library/gradient.sass
@import library/button_style.sass

View File

@ -20,10 +20,12 @@
!page_border_sides = #ccc !page_border_sides = #ccc
!page_bg = #f0f0f0 !page_bg = #f0f0f0
!sidebar_bg = #fcfcfc
!sidebar_border = #eee
// Blog // Blog
!article_border = #eee !article_border = #eee
!blog_bg = #fff !main_bg = #fff
!footer_color = #999 !footer_color = #999
!footer_bg = #444 !footer_bg = #444

View File

@ -1,47 +0,0 @@
!default_border_radius ||= 5px
// Round all borders by amount
=border-radius(!radius = !default_border_radius)
border-radius= !radius
-moz-border-radius= !radius
-webkit-border-radius= !radius
// Round radius at position by amount.
// values for !vert: "top", "bottom"
// values for !horz: "left", "right
=border-corner-radius(!vert, !horz, !radius = !default_border_radius)
border-#{!vert}-#{!horz}-radius= !radius
-moz-border-radius-#{!vert}#{!horz}= !radius
-webkit-border-#{!vert}-#{!horz}-radius= !radius
=border-top-left-radius(!radius = !default_border_radius)
+border-corner-radius("top", "left", !radius)
=border-top-right-radius(!radius = !default_border_radius)
+border-corner-radius("top", "right", !radius)
=border-bottom-left-radius(!radius = !default_border_radius)
+border-corner-radius("bottom", "left", !radius)
=border-bottom-right-radius(!radius = !default_border_radius)
+border-corner-radius("bottom", "right", !radius)
// Round top corners by amount
=border-top-radius(!radius = !default_border_radius)
+border-top-left-radius(!radius)
+border-top-right-radius(!radius)
// Round right corners by amount
=border-right-radius(!radius = !default_border_radius)
+border-top-right-radius(!radius)
+border-bottom-right-radius(!radius)
// Round bottom corners by amount
=border-bottom-radius(!radius = !default_border_radius)
+border-bottom-left-radius(!radius)
+border-bottom-right-radius(!radius)
// Round left corners by amount
=border-left-radius(!radius = !default_border_radius)
+border-top-left-radius(!radius)
+border-bottom-left-radius(!radius)

View File

@ -1,45 +0,0 @@
=btn-border-color(!color)
border-color= darken(!color, 25)
=btn-text-shadow(!color)
!text_shadow = darken(!color, 25)
text-shadow= !text_shadow "1px 1px 1px"
=btn-style(!color)
!color1 = lighten(!color, 30)
!color2 = darken(!color, 20)
+h-linear-gradient(!color1, !color2)
background-color= !color
+btn-border-color(!color)
+btn-text-shadow(!color)
=btn-style-hover(!color)
!color = lighten(!color, 8)
!color1 = lighten(!color, 22)
!color2 = darken(!color, 38)
+h-linear-gradient(!color1, !color2)
background-color= !color
+btn-border-color(!color)
+btn-text-shadow(!color)
=btn-style-active(!color)
!color = darken(!color, 5)
!color1 = lighten(!color, 25)
!color2 = darken(!color, 35)
+h-linear-gradient(!color1, !color2)
background-color= !color
+btn-border-color(!color)
+btn-text-shadow(!color)
=btn-structure(!font_size, !border_width, !line_height = !font_size *1.2)
!v_padding = floor(!font_size/2.5)
!h_padding = floor(!font_size)
!v_padding_active = !v_padding - 1px
!h_padding_active = !h_padding - 1px
border-width= !border_width
font-size= !font_size
padding= !v_padding !h_padding
line-height= !line_height
&:active
border-width= !border_width + 1px
padding= !v_padding_active !h_padding_active

View File

@ -1,24 +0,0 @@
// based on compass clearfix
@import _hacks.sass
// Extends the element to enclose any floats it contains.
// This basic method is preferred for the usual case, when positioned content will not show outside the bounds of the container.
// Recommendations include using this in conjunction with a width:
// http://www.quirksmode.org/blog/archives/2005/03/clearing_floats.html
=clearfix
:overflow hidden
+has-layout
// Extends the element to enclose any floats it contains.
// This older "Easy Clearing" method has the advantage of allowing positioned elements to hang outside the bounds of the container, at the expense of more tricky CSS.
// http://www.positioniseverything.net/easyclearing.html
=pie-clearfix
&:after
:content " "
:display block
:height 0
:clear both
:overflow hidden
:visibility hidden
+has-layout

View File

@ -1,12 +0,0 @@
!default_box_shadow_color = #333
!default_box_shadow_x_offset = 1px
!default_box_shadow_y_offset = 1px
!default_box_shadow_blur_radius = 8px
=box-shadow(!color = !default_box_shadow_color, !blur_radius = !default_box_shadow_blur_radius, !x_offset = !default_box_shadow_x_offset, !y_offset = !default_box_shadow_y_offset, !inset = "")
box-shadow= !inset !x_offset !y_offset !blur_radius !color
-webkit-box-shadow= !inset !x_offset !y_offset !blur_radius !color
-moz-box-shadow= !inset !x_offset !y_offset !blur_radius !color
=inset-box-shadow(!color = !default_box_shadow_color, !blur_radius = !default_box_shadow_blur_radius, !x_offset = !default_box_shadow_x_offset, !y_offset = !default_box_shadow_y_offset)
+box-shadow(!color, !blur_radius, !x_offset, !y_offset, "inset")

View File

@ -1,15 +0,0 @@
=linear-gradient(!from_coord, !to_coord, !color_start, !color_end, !color_stop1 = 0, !color_stop1_pos = .3, !color_stop_2 = 0, !color_stop2_pos = .9)
!gradient = "#{!from_coord}, #{!to_coord}, from(#{!color_start}), to(#{!color_end})"
//@if !color_stop1 != 0
// !gradient += "color-stop(#{!color_stop1_pos}, #{!color_stop1})"
background= "-webkit-gradient(linear, #{!gradient})"
background= "-moz-linear-gradient(#{!gradient})"
=h-linear-gradient(!color1, !color2)
+linear-gradient("left top", "left bottom", !color1, !color2)
=v-linear-gradient(!color1, !color2)
+linear-gradient("left top", "right top", !color1, !color2)
//=h-three-color-gradient(!color1, !color2, !color3, !color3_pos = .5)
// +linear-gradient("left top", "left bottom", !color1, !color2, !color3, !color3_pos)

View File

@ -1,8 +0,0 @@
// based on compass hacks
=has-layout
// This makes ie6 get layout
:display inline-block
// and this puts it back to block
&
:display block

View File

@ -1,18 +0,0 @@
//**
Provides cross-browser css opacity.
@param !opacity
A number between 0 and 1, where 0 is transparent and 1 is opaque.
=opacity(!opacity)
:opacity= !opacity
:-moz-opacity= !opacity
:-khtml-opacity= !opacity
:-ms-filter= "progid:DXImageTransform.Microsoft.Alpha(Opacity=" + round(!opacity*100) + ")"
:filter= "alpha(opacity=" + round(!opacity*100) + ")"
// Make an element completely transparent.
=transparent
+opacity(0)
// Make an element completely opaque.
=opaque
+opacity(1)

View File

@ -1,4 +0,0 @@
=sprite-column-hover-row(!col, !row_hover=2, !width=!sprite_default_size, !height=!sprite_default_size, !margin=!sprite_default_margin)
+sprite-position(!col, 1, !width, !height, !margin)
&:hover
+sprite-position(!col, !row_hover, !width, !height, !margin)

View File

@ -1,52 +0,0 @@
//**
Example 1:
a.twitter
+sprite-img("icons-32.png", 1)
a.facebook
+sprite-img("icons-32png", 2)
...
Example 2:
a
+sprite-background("icons-32.png")
a.twitter
+sprite-column(1)
a.facebook
+sprite-row(2)
...
!sprite_default_size ||= 32px
!sprite_default_margin ||= 0px
!sprite_image_default_width ||= !sprite_default_size
!sprite_image_default_height ||= !sprite_default_size
// Sets all the rules for a sprite from a given sprite image to show just one of the sprites.
// To reduce duplication use a sprite-bg mixin for common properties and a sprite-select mixin for positioning.
=sprite-img(!img, !col, !row = 1, !width = !sprite_image_default_width, !height = !sprite_image_default_height, !margin = !sprite_default_margin)
+sprite-background(!img, !width, !height)
+sprite-position(!col, !row, !width, !height, !margin)
// Sets rules common for all sprites, assumes you want a square, but allows a rectangular region.
=sprite-background(!img, !width = !sprite_default_size, !height = !width)
+sprite-background-rectangle(!img, !width, !height)
// Sets rules common for all sprites, assumes a rectangular region.
=sprite-background-rectangle(!img, !width = !sprite_image_default_width, !height = !sprite_image_default_height)
:background= image_url(!img) "no-repeat"
:width= !width
:height= !height
:overflow hidden
// Allows horizontal sprite positioning optimized for a single row of sprites.
=sprite-column(!col, !width = !sprite_image_default_width, !margin = !sprite_default_margin)
+sprite-position(!col, 1, !width, 0px, !margin)
// Allows vertical sprite positioning optimized for a single column of sprites.
=sprite-row(!row, !height = !sprite_image_default_height, !margin = !sprite_default_margin)
+sprite-position(1, !row, 0px, !height, !margin)
// Allows vertical and horizontal sprite positioning from a grid of equal dimensioned sprites.
=sprite-position(!col, !row = 1, !width = !sprite_image_default_width, !height = !sprite_image_default_height, !margin = !sprite_default_margin)
!x = ((!col - 1) * -!width) - ((!col - 1) * !margin)
!y = ((!row - 1) * -!height) - ((!row - 1) * !margin)
:background-position= !x !y

View File

@ -2,12 +2,12 @@
!small ||= floor(!base_font_size * .85) !small ||= floor(!base_font_size * .85)
!big ||= floor(!base_font_size * 1.25) !big ||= floor(!base_font_size * 1.25)
!base_font_color ||= #333 !base_font_color ||= #333
!h6 = ceil(!base_font_size*1.3) !h6 = ceil(!base_font_size*1)
!h5 = ceil(!base_font_size*1.4) !h5 = ceil(!base_font_size*1)
!h4 = ceil(!base_font_size*1.7) !h4 = ceil(!base_font_size*1.2)
!h3 = ceil(!base_font_size*1.9) !h3 = ceil(!base_font_size*1.8)
!h2 = ceil(!base_font_size*2.2) !h2 = ceil(!base_font_size*2.8)
!h1 = ceil(!base_font_size*2.5) !h1 = ceil(!base_font_size*3.2)
=heading-font =heading-font
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif font-family: "Helvetica Neue", Helvetica, Arial, sans-serif
@ -29,8 +29,8 @@
!h5 = ceil(!font_size*1) !h5 = ceil(!font_size*1)
!h4 = ceil(!font_size*1.2) !h4 = ceil(!font_size*1.2)
!h3 = ceil(!font_size*1.8) !h3 = ceil(!font_size*1.8)
!h2 = ceil(!font_size*3) !h2 = ceil(!font_size*2.8)
!h1 = ceil(!font_size*3.5) !h1 = ceil(!font_size*3.2)
h1, h2, h3, h4 h1, h2, h3, h4
&:first-child &:first-child
margin-top: 0 margin-top: 0

View File

@ -7,12 +7,12 @@
&:hover &:hover
text-decoration: underline text-decoration: underline
.article .article
padding= !base_font_size * 1.5 0 !base_font_size * 1.5 padding: #{!base_font_size * 1.5 0} #{!base_font_size * 1.5}
border-bottom= "1px solid" !article_border border-bottom: 1px solid #{!article_border}
&:first-child &:first-child
padding-top: 0 padding-top: 0
#disqus_thread #disqus_thread
padding-top= !base_font_size padding-top: #{!base_font_size}
.meta .meta
+sans-font +sans-font
border-bottom: 1px dashed #ddd border-bottom: 1px dashed #ddd
@ -21,4 +21,6 @@
padding: 8px 0 5px padding: 8px 0 5px
margin-bottom: 1.5em margin-bottom: 1.5em
font-size: 75% font-size: 75%
letter-spacing: 1px letter-spacing: 1px
.footer
padding-top: 15px

View File

@ -1,13 +1,12 @@
#footer #footer
+linear-gradient(color_stops(darken(!body_bg, 5), !body_bg))
font-size: #{!base_font_size_small}
color: #{!footer_color}
border-top: 10px solid #{!footer_bg}
padding: 15px 0
position: relative position: relative
z-index: 2 z-index: 2
font-size= !base_font_size_small
clear: both
padding= !base_font_size * 1.5 0
color= !footer_color
+h-linear-gradient(darken(!body_bg, 25), !body_bg)
border-top= "14px solid" !footer_bg
a a
color= #ddd color: #ddd
&:hover &:hover
color = #fff color: #fff

View File

@ -1,12 +1,11 @@
#header #header
background-color= !header_bg background-color: {!header_bg}
border-bottom= "1px solid" !header_border border-bottom: 1px solid #{!header_border}
padding: 30px 0 padding: 25px 0
.page_width h1
position: relative
a.title
font-size= !h1
+heading-font
display: inline-block display: inline-block
color= !title_color margin: 0
text-decoration: none a.title
font-weight: normal
color: #{!title_color}
text-decoration: none

View File

@ -2,23 +2,20 @@
+clearfix +clearfix
position: relative position: relative
z-index: 1 z-index: 1
padding: 6px 0 background-color: #{!nav_bg}
background: +linear-gradient(color_stops(#fcfcfc, #f4f4f4 .3, #ddd))
color= !nav_bg
image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#ddd), color-stop(0.3, #f4f4f4))
image: -moz-linear-gradient(left top, left bottom, from(#fcfcfc), to(#ddd), color-stop(0.3, #f4f4f4))
border: border:
top= "1px solid" !nav_border_top top: 1px solid #{!nav_border_top}
bottom= "1px solid" !nav_border_bottom bottom: 1px solid #{!nav_border_bottom}
ul ul
position: relative position: relative
+horizontal-list +horizontal-list
margin: 0 auto margin: 0 auto
overflow: visible padding: 6px 0
li li
padding: 0 15px padding: 0 15px
border-left= "1px solid" !nav_border_left border-left: 1px solid #{!nav_border_left}
border-right= "1px solid" !nav_border_right border-right: 1px solid #{!nav_border_right}
&.alpha &.alpha
border-left: none border-left: none
padding-left: 0 padding-left: 0
@ -26,7 +23,7 @@
border-right: 0 border-right: 0
&.subscribe &.subscribe
position: absolute position: absolute
left= !page_width - !sidebar_width - !sidebar_margin/2 left: #{!page_width - !sidebar_width - !sidebar_margin/2}
border: none border: none
a a
display: inline-block display: inline-block
@ -34,8 +31,8 @@
background: url("/images/rss.png") left top no-repeat background: url("/images/rss.png") left top no-repeat
a a
display: inline-block display: inline-block
color= !nav_color color: #{!nav_color}
line-height: 150% line-height: 150%
text-decoration: none text-decoration: none
&:hover &:hover
color= !nav_color_hover color: #{!nav_color_hover}

View File

@ -1,19 +1,8 @@
#page #page
+clearfix background-color: #{!main_bg}
background-color= !page_bg
.page_width
+clearfix
position: relative
padding:
top: 25px
bottom: 25px
background-color= !blog_bg
+box-shadow(#ccc)
border:
left= "1px solid" !page_border_sides
right= "1px solid" !page_border_sides
#main #main
width= !main_width background-color: #{!main_bg}
float: left border-right: 1px solid #{!sidebar_border}
&.expanded padding:
width: 100% top: 25px
bottom: 25px

View File

@ -1,7 +1,7 @@
#search #search
position: absolute position: absolute
left= !page_width + !sidebar_margin - !sidebar_width left: #{!page_width + !sidebar_margin - !sidebar_width}
top= 10% top: #{30%}
form form
background: url(/images/search_bg.png) no-repeat background: url(/images/search_bg.png) no-repeat
padding: 0 padding: 0

View File

@ -1,16 +1,17 @@
#sidebar #sidebar
float: left line-height: 1.45em
width= !sidebar_width font-size: 90%
margin-left= !sidebar_margin h3
font-size: 80% font-size: #{!h4+2}
line-height: 1.625em margin: 20px -15px 10px
h4 padding: 12px 15px
margin: 20px 0 0 background: #fff
border-bottom: 1px solid #e5e5e5
border-top: 1px solid #e5e5e5
&:first-child &:first-child
margin-top: 10px margin-top: 0
.small h4
+sans-font font-size: #{!h5}
font-size: 50%
#twitter, #delicious #twitter, #delicious
+border-radius +border-radius