├── README.md ├── css ├── component.css └── demo.css ├── favicon.ico ├── fonts └── bpicons │ ├── bpicons.eot │ ├── bpicons.svg │ ├── bpicons.ttf │ ├── bpicons.woff │ └── license.txt ├── images ├── 1.jpg ├── 2.jpg ├── 3.jpg ├── 4.jpg ├── 5.jpg └── 6.jpg ├── index.html └── js ├── classie.js ├── main.js └── modernizr-custom.js /README.md: -------------------------------------------------------------------------------- 1 | Blueprint: Page Stack Navigation 2 | ========= 3 | 4 | A template for a simple page stack navigation based on the Dribbble shot by Ilya Kostin, Stacked navigation. 5 | 6 | [Article on Codrops](http://tympanus.net/codrops/?p=25311) 7 | 8 | [Demo](http://tympanus.net/Blueprints/PageStackNavigation/) 9 | 10 | The Blueprints are a collection of basic and minimal website concepts, components, plugins and layouts with minimal style for easy adaption and usage, or simply for inspiration. 11 | 12 | Check out all of our Blueprints [here](http://tympanus.net/codrops/category/blueprints/) 13 | 14 | Integrate or build upon it for free in your personal or commercial projects. Don't republish, redistribute or sell "as-is". 15 | 16 | Read more here: [License](http://tympanus.net/codrops/licensing/) 17 | 18 | Follow us: [Twitter](http://www.twitter.com/codrops), [Facebook](http://www.facebook.com/pages/Codrops/159107397912), [Google+](https://plus.google.com/101095823814290637419), [GitHub](https://github.com/codrops), [Pinterest](http://www.pinterest.com/codrops/) 19 | 20 | [© Codrops 2015](http://www.codrops.com) -------------------------------------------------------------------------------- /css/component.css: -------------------------------------------------------------------------------- 1 | html.js, 2 | .js body { 3 | overflow: hidden; 4 | height: 100vh; 5 | } 6 | 7 | /* Pages nav */ 8 | 9 | .pages-nav { 10 | display: -webkit-flex; 11 | display: flex; 12 | -webkit-flex-wrap: wrap; 13 | flex-wrap: wrap; 14 | -webkit-justify-content: center; 15 | justify-content: center; 16 | -webkit-align-items: center; 17 | align-items: center; 18 | padding: 20px; 19 | text-align: center; 20 | background: #0e0f0f; 21 | } 22 | 23 | .js .pages-nav { 24 | position: absolute; 25 | top: 0; 26 | left: 0; 27 | width: 100%; 28 | height: 50vh; 29 | padding: 30px; 30 | pointer-events: none; 31 | opacity: 0; 32 | background: transparent; 33 | -webkit-transition: -webkit-transform 1.2s, opacity 1.2s; 34 | transition: transform 1.2s, opacity 1.2s; 35 | -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); 36 | transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); 37 | -webkit-transform: translate3d(0, 150px, 0); 38 | transform: translate3d(0, 150px, 0); 39 | } 40 | 41 | .js .pages-nav--open { 42 | pointer-events: auto; 43 | opacity: 1; 44 | -webkit-transform: translate3d(0, 0, 0); 45 | transform: translate3d(0, 0, 0); 46 | } 47 | 48 | .pages-nav__item { 49 | width: 33%; 50 | padding: 1em; 51 | } 52 | 53 | .js .pages-nav__item { 54 | padding: 0 10%; 55 | } 56 | 57 | .pages-nav .pages-nav__item--social { 58 | width: 100%; 59 | opacity: 0; 60 | -webkit-transition: -webkit-transform 1.2s, opacity 1.2s; 61 | transition: transform 1.2s, opacity 1.2s; 62 | -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); 63 | transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1); 64 | -webkit-transform: translate3d(0, 20px, 0); 65 | transform: translate3d(0, 20px, 0); 66 | } 67 | 68 | .pages-nav--open .pages-nav__item--social { 69 | opacity: 1; 70 | -webkit-transition-delay: 0.35s; 71 | transition-delay: 0.35s; 72 | -webkit-transform: translate3d(0, 0, 0); 73 | transform: translate3d(0, 0, 0); 74 | } 75 | 76 | .link { 77 | font-size: 0.85em; 78 | font-weight: bold; 79 | position: relative; 80 | letter-spacing: 1px; 81 | text-transform: uppercase; 82 | } 83 | 84 | .link:hover, 85 | .link:focus { 86 | color: #fff; 87 | } 88 | 89 | .link--page { 90 | display: block; 91 | color: #cecece; 92 | } 93 | 94 | .link--page:not(.link--faded)::before { 95 | content: ''; 96 | position: absolute; 97 | top: 100%; 98 | left: 50%; 99 | width: 30px; 100 | height: 2px; 101 | margin: 5px 0 0 -15px; 102 | background: #fff; 103 | -webkit-transition: -webkit-transform 0.3s; 104 | transition: transform 0.3s; 105 | -webkit-transform: scale3d(0, 1, 1); 106 | transform: scale3d(0, 1, 1); 107 | } 108 | 109 | .link--page:hover:before { 110 | -webkit-transform: scale3d(1, 1, 1); 111 | transform: scale3d(1, 1, 1); 112 | } 113 | 114 | .link--faded { 115 | color: #4f4f64; 116 | } 117 | 118 | .link--faded:hover, 119 | .link--faded:focus { 120 | color: #5c5edc; 121 | } 122 | 123 | .link--page.link--faded { 124 | font-size: 0.65em; 125 | } 126 | 127 | .link--social { 128 | font-size: 1.5em; 129 | margin: 0 0.75em; 130 | } 131 | 132 | .text-hidden { 133 | position: absolute; 134 | display: block; 135 | overflow: hidden; 136 | width: 0; 137 | height: 0; 138 | color: transparent; 139 | } 140 | 141 | /* Pages stack */ 142 | 143 | .js .pages-stack { 144 | z-index: 100; 145 | pointer-events: none; 146 | -webkit-perspective: 1200px; 147 | perspective: 1200px; 148 | -webkit-perspective-origin: 50% -50%; 149 | perspective-origin: 50% -50%; 150 | } 151 | 152 | .js .page { 153 | position: relative; 154 | z-index: 5; 155 | overflow: hidden; 156 | width: 100%; 157 | height: 100vh; 158 | pointer-events: auto; 159 | background: #2a2b30; 160 | box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); 161 | } 162 | 163 | .js .pages-stack--open .page { 164 | cursor: pointer; 165 | -webkit-transition: -webkit-transform 0.45s, opacity 0.45s; 166 | transition: transform 0.45s, opacity 0.45s; 167 | -webkit-transition-timing-function: cubic-bezier(0.6, 0, 0.4, 1); 168 | transition-timing-function: cubic-bezier(0.6, 0, 0.4, 1); 169 | } 170 | 171 | .js .page--inactive { 172 | position: absolute; 173 | z-index: 0; 174 | top: 0; 175 | opacity: 0; 176 | } 177 | 178 | /* page content */ 179 | 180 | .info { 181 | font-size: 1.25em; 182 | max-width: 50%; 183 | margin-top: 1.5em; 184 | } 185 | 186 | .poster { 187 | position: absolute; 188 | bottom: 4vh; 189 | left: 60%; 190 | max-width: 100%; 191 | max-height: 80%; 192 | } 193 | 194 | /* Menu button */ 195 | 196 | .menu-button { 197 | position: absolute; 198 | z-index: 1000; 199 | top: 30px; 200 | left: 30px; 201 | width: 30px; 202 | height: 24px; 203 | padding: 0; 204 | cursor: pointer; 205 | border: none; 206 | outline: none; 207 | background: transparent; 208 | } 209 | 210 | .no-js .menu-button { 211 | display: none; 212 | } 213 | 214 | .menu-button::before, 215 | .menu-button::after, 216 | .menu-button span { 217 | background: #5f656f; 218 | } 219 | 220 | .menu-button::before, 221 | .menu-button::after { 222 | content: ''; 223 | position: absolute; 224 | top: 50%; 225 | left: 0; 226 | width: 100%; 227 | height: 2px; 228 | pointer-events: none; 229 | -webkit-transition: -webkit-transform 0.25s; 230 | transition: transform 0.25s; 231 | -webkit-transform-origin: 50% 50%; 232 | transform-origin: 50% 50%; 233 | } 234 | 235 | .menu-button span { 236 | position: absolute; 237 | left: 0; 238 | overflow: hidden; 239 | width: 100%; 240 | height: 2px; 241 | text-indent: 200%; 242 | -webkit-transition: opacity 0.25s; 243 | transition: opacity 0.25s; 244 | } 245 | 246 | .menu-button::before { 247 | -webkit-transform: translate3d(0, -10px, 0) scale3d(0.8, 1, 1); 248 | transform: translate3d(0, -10px, 0) scale3d(0.8, 1, 1); 249 | } 250 | 251 | .menu-button::after { 252 | -webkit-transform: translate3d(0, 10px, 0) scale3d(0.8, 1, 1); 253 | transform: translate3d(0, 10px, 0) scale3d(0.8, 1, 1); 254 | } 255 | 256 | .menu-button--open span { 257 | opacity: 0; 258 | } 259 | 260 | .menu-button--open::before { 261 | -webkit-transform: rotate3d(0, 0, 1, 45deg); 262 | transform: rotate3d(0, 0, 1, 45deg); 263 | } 264 | 265 | .menu-button--open::after { 266 | -webkit-transform: rotate3d(0, 0, 1, -45deg); 267 | transform: rotate3d(0, 0, 1, -45deg); 268 | } 269 | 270 | @media screen and (max-width: 60em) { 271 | .info { 272 | max-width: 100%; 273 | } 274 | .poster { 275 | position: relative; 276 | top: auto; 277 | left: auto; 278 | display: block; 279 | max-width: 100%; 280 | max-height: 50vh; 281 | margin: 0 0 0 50%; 282 | } 283 | .pages-nav__item { 284 | width: 50%; 285 | min-height: 20px; 286 | } 287 | .link--page { 288 | overflow: hidden; 289 | white-space: nowrap; 290 | text-overflow: ellipsis; 291 | } 292 | .link--social { 293 | margin: 0 0.1em; 294 | } 295 | } 296 | 297 | @media screen and (max-width: 40em) { 298 | .js .pages-nav { 299 | display: block; 300 | padding: 10px 20px 0 20px; 301 | text-align: left; 302 | } 303 | .js .pages-nav__item { 304 | width: 100%; 305 | padding: 4px 0; 306 | } 307 | .js .pages-nav__item--small { 308 | display: inline-block; 309 | width: auto; 310 | margin-right: 5px; 311 | } 312 | .pages-nav__item--social { 313 | font-size: 0.9em; 314 | } 315 | .menu-button { 316 | top: 15px; 317 | right: 10px; 318 | left: auto; 319 | } 320 | .info { 321 | font-size: 0.85em; 322 | } 323 | .poster { 324 | margin: 1em; 325 | } 326 | } 327 | -------------------------------------------------------------------------------- /css/demo.css: -------------------------------------------------------------------------------- 1 | /* General Blueprint Style */ 2 | 3 | @font-face { 4 | font-family: 'bpicons'; 5 | font-weight: normal; 6 | font-style: normal; 7 | src: url('../fonts/bpicons/bpicons.eot'); 8 | src: url('../fonts/bpicons/bpicons.eot?#iefix') format('embedded-opentype'), url('../fonts/bpicons/bpicons.woff') format('woff'), url('../fonts/bpicons/bpicons.ttf') format('truetype'), url('../fonts/bpicons/bpicons.svg#bpicons') format('svg'); 9 | } 10 | 11 | 12 | /* Made with http://icomoon.io/ */ 13 | 14 | 15 | /* Resets */ 16 | 17 | *, 18 | *:after, 19 | *:before { 20 | box-sizing: border-box; 21 | } 22 | 23 | 24 | /* Helper classes */ 25 | 26 | .cf:before, 27 | .cf:after { 28 | content: ' '; 29 | display: table; 30 | } 31 | 32 | .cf:after { 33 | clear: both; 34 | } 35 | 36 | 37 | /* Main styles */ 38 | 39 | body { 40 | font-family: 'Avenir Next', Avenir, 'Helvetica Neue', 'Lato', 'Segoe UI', Helvetica, Arial, sans-serif; 41 | margin: 0; 42 | color: #cecece; 43 | background: #1d1e21; 44 | -webkit-font-smoothing: antialiased; 45 | -moz-osx-font-smoothing: grayscale; 46 | } 47 | 48 | a { 49 | text-decoration: none; 50 | color: #5c5edc; 51 | outline: none; 52 | } 53 | 54 | a:hover { 55 | color: #fff; 56 | } 57 | 58 | 59 | /* Blueprint header */ 60 | 61 | .bp-header { 62 | padding: 6em 10vw 2em; 63 | } 64 | 65 | .bp-header__title { 66 | font-size: 2.125em; 67 | font-weight: 700; 68 | line-height: 1.3; 69 | margin: 0; 70 | letter-spacing: 2px; 71 | text-transform: uppercase; 72 | color: #fff; 73 | } 74 | 75 | .bp-header__desc { 76 | font-size: 0.95em; 77 | margin: 0.5em 0 1em; 78 | padding: 0; 79 | } 80 | 81 | .bp-header__present { 82 | font-size: 0.85em; 83 | font-weight: 700; 84 | position: relative; 85 | z-index: 100; 86 | display: block; 87 | padding: 0 0 0.6em 0.1em; 88 | letter-spacing: 0.5em; 89 | text-transform: uppercase; 90 | color: #5c5edc; 91 | } 92 | 93 | .bp-tooltip:after { 94 | font-size: 50%; 95 | font-size: 75%; 96 | position: relative; 97 | top: -8px; 98 | left: -12px; 99 | width: 30px; 100 | height: 30px; 101 | } 102 | 103 | .bp-tooltip:hover:before { 104 | content: attr(data-content); 105 | font-size: 110%; 106 | font-weight: 700; 107 | line-height: 1.2; 108 | position: absolute; 109 | left: auto; 110 | margin-left: 4px; 111 | padding: 0.8em 1em; 112 | text-align: left; 113 | text-indent: 0; 114 | letter-spacing: 0; 115 | text-transform: none; 116 | color: #fff; 117 | background: #5c5edc; 118 | } 119 | 120 | .bp-nav { 121 | margin: 0 0 0 -0.75em; 122 | } 123 | 124 | .bp-nav__item { 125 | position: relative; 126 | display: inline-block; 127 | width: 2.5em; 128 | height: 2.5em; 129 | margin: 0 0.1em; 130 | text-align: left; 131 | border-radius: 50%; 132 | } 133 | 134 | .bp-nav__item > span { 135 | display: none; 136 | } 137 | 138 | .bp-nav__item:hover:before { 139 | content: attr(data-info); 140 | font-size: 0.85em; 141 | font-weight: bold; 142 | position: absolute; 143 | top: 120%; 144 | left: 0; 145 | width: 600%; 146 | text-align: left; 147 | pointer-events: none; 148 | color: #595a5f; 149 | } 150 | 151 | .bp-nav__item:hover { 152 | background: #5c5edc; 153 | } 154 | 155 | .bp-icon:after { 156 | font-family: 'bpicons'; 157 | font-weight: normal; 158 | font-style: normal; 159 | font-variant: normal; 160 | text-align: center; 161 | text-transform: none; 162 | color: #5c5edc; 163 | -webkit-font-smoothing: antialiased; 164 | 165 | speak: none; 166 | } 167 | 168 | .bp-nav .bp-icon:after { 169 | line-height: 2.4; 170 | position: absolute; 171 | top: 0; 172 | left: 0; 173 | width: 100%; 174 | height: 100%; 175 | text-indent: 0; 176 | } 177 | 178 | .bp-nav a:hover:after { 179 | color: #fff; 180 | } 181 | 182 | .bp-icon--next:after { 183 | content: '\e000'; 184 | } 185 | 186 | .bp-icon--drop:after { 187 | content: '\e001'; 188 | } 189 | 190 | .bp-icon--archive:after { 191 | content: '\e002'; 192 | } 193 | 194 | .bp-icon--about:after { 195 | content: '\e003'; 196 | } 197 | 198 | .bp-icon--prev:after { 199 | content: '\e004'; 200 | } 201 | 202 | @media screen and (max-width: 40em) { 203 | .bp-header { 204 | padding: 50px 20px 1em; 205 | } 206 | .bp-header__title { 207 | font-size: 1.8em; 208 | } 209 | } 210 | -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codrops/PageStackNavigation/f6f0f1f156e067e9838a64e61ee17f588480c0c9/favicon.ico -------------------------------------------------------------------------------- /fonts/bpicons/bpicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codrops/PageStackNavigation/f6f0f1f156e067e9838a64e61ee17f588480c0c9/fonts/bpicons/bpicons.eot -------------------------------------------------------------------------------- /fonts/bpicons/bpicons.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /fonts/bpicons/bpicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codrops/PageStackNavigation/f6f0f1f156e067e9838a64e61ee17f588480c0c9/fonts/bpicons/bpicons.ttf -------------------------------------------------------------------------------- /fonts/bpicons/bpicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codrops/PageStackNavigation/f6f0f1f156e067e9838a64e61ee17f588480c0c9/fonts/bpicons/bpicons.woff -------------------------------------------------------------------------------- /fonts/bpicons/license.txt: -------------------------------------------------------------------------------- 1 | Icon Set: Font Awesome -- http://fortawesome.github.com/Font-Awesome/ 2 | License: SIL -- http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL 3 | 4 | 5 | Icon Set: Eco Ico -- http://dribbble.com/shots/665585-Eco-Ico 6 | License: CC0 -- http://creativecommons.org/publicdomain/zero/1.0/ -------------------------------------------------------------------------------- /images/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codrops/PageStackNavigation/f6f0f1f156e067e9838a64e61ee17f588480c0c9/images/1.jpg -------------------------------------------------------------------------------- /images/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codrops/PageStackNavigation/f6f0f1f156e067e9838a64e61ee17f588480c0c9/images/2.jpg -------------------------------------------------------------------------------- /images/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codrops/PageStackNavigation/f6f0f1f156e067e9838a64e61ee17f588480c0c9/images/3.jpg -------------------------------------------------------------------------------- /images/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codrops/PageStackNavigation/f6f0f1f156e067e9838a64e61ee17f588480c0c9/images/4.jpg -------------------------------------------------------------------------------- /images/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codrops/PageStackNavigation/f6f0f1f156e067e9838a64e61ee17f588480c0c9/images/5.jpg -------------------------------------------------------------------------------- /images/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/codrops/PageStackNavigation/f6f0f1f156e067e9838a64e61ee17f588480c0c9/images/6.jpg -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 |Based on Ilya Kostin's Dribbble shot Stacked navigation
48 | 54 |Based on Ilya Kostin's Dribbble shot Stacked navigation
62 |63 | "We cannot have peace among men whose hearts find delight in killing any living creature." — Rachel Carson 64 |
65 |Based on Ilya Kostin's Dribbble shot Stacked navigation
72 |73 | "When you adopt a vegan diet we make a connection, you don't go back, it is not a diet, it is a lifestyle." — Freelee Frugivore 74 |
75 |Based on Ilya Kostin's Dribbble shot Stacked navigation
82 |83 | "I decided to pick the diet that I thought would maximize my chances of long-term survival." — Al Gore 84 |
85 |Based on Ilya Kostin's Dribbble shot Stacked navigation
92 |93 | "You have to make a conscious decision to change for your own well-being, that of your family and your country." —Bill Clinton 94 |
95 |Based on Ilya Kostin's Dribbble shot Stacked navigation
102 |103 | "The moment I began to understand what was going on with the treatment of animals, it led me more and more in the way of the path I am [on] now, which is a complete vegan." — Bryan Adams 104 |
105 |Based on Ilya Kostin's Dribbble shot Stacked navigation
112 |113 | "When people ask me why I don't eat meat or any other animal products, I say, 'Because they are unhealthy and they are the product of a violent and inhumane industry.'" — 114 |
115 |Based on Ilya Kostin's Dribbble shot Stacked navigation
122 |123 | "The question is not, 'Can they reason?' nor, 'Can they talk?' but rather, 'Can they suffer?" — Jeremy Bentham 124 |
125 |Based on Ilya Kostin's Dribbble shot Stacked navigation
132 |133 | "Man is the only animal that can remain on friendly terms with the victims he intends to eat until he eats them." — Samuel Butler 134 |
135 |