Fibonacci Layout
I was thinking about the Fibonacci Sequence. If you don’t remember math class, it’s where the addition two numbers create the next number in the sequence
.
1, 1, 2, 3, 5, 8, 13, 21, 34
What if you could apply it to a web design layout? If you think of the Fibonacci sequence as relative values, then you can create an initial tile of any size. Put another way, let’s say 64px = 1 unit. It’s look like this:
64px, 64px, 128px, 192px, 320px, 512, 832, 1344, 2176
This will create a set to squares all up against one another, with no space between. In design though, you normally want gutters or margins between the elements. I modified the typical fibonacci function to add a margin to the result. Using a margin of 16px, The new values become the following:
64px, 64px, 144px, 224px, 384px, 624px, 1024px
Here’s some code to play with the margin and tile size to try out for your own designs.
<?php // Fibonacci Sequence // 1, 1, 2, 3, 5, 8, 13, 21, 34, ... $max = 1024; $tile_size = 64; // pixels $margin = 16; // pixels $a = $tile_size; $b = $tile_size; echo "margin = {$margin}px\n"; fibonacci($a, $b, $margin); function fibonacci($a, $b, $margin) { global $max; if ($b >= $max) { exit(); } echo "a = {$a}px, b = {$b}px\n"; $result = $a + $b + $margin; $a = $b; $b = $result; echo "result => {$result}px\n"; fibonacci($a, $b, $margin); }