├── .github ├── ISSUE_TEMPLATE │ └── content-suggestion.md └── pull_request_template.md ├── LICENSE ├── README.md ├── css └── normalize.css ├── favicon.ico ├── img └── logo.svg ├── index.html ├── next.html ├── site.webmanifest ├── styles.css └── template.hbs /.github/ISSUE_TEMPLATE/content-suggestion.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Content suggestion 3 | about: The standard content suggestion template 4 | title: "Suggestion for the coming week contest" 5 | labels: Next content 6 | assignees: "janethebot" 7 | --- 8 | 9 | --- Place here the exact content you're suggesting as a next piece --- 10 | Explaining your suggestion and further discussion can take place in the comment section 11 | -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | # Contest submission 2 | 3 | You can talk about your submission here, so others will have a better context when evaluating it. 4 | 5 | --- 6 | This Contest Submission: 7 | - [ ] Is intended as my entry to the CSS Art Contest. 8 | - [ ] Does not contain changes that will harm or offend any website users where it will run. 9 | - [ ] Does not contain modifications that will degrade the user experience. 10 | - [ ] Does not contain any malicious code. 11 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Vinícius Andrade 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | CSS Contest logo 3 |

4 | 5 | --- 6 | 7 | # Welcome 8 | Welcome to our weekly community-driven automated contest that celebrates CSS craft. Our goal is to create a friendly corner on the web where challenge drives coders to inspire, entertain, and innovate, using HTML and CSS. 9 | 10 | **The basic idea of the contest**: each week, you have an HTML file with some content, and your goal is to create the CSS file that makes this a beautiful piece of web art. 11 | 12 | For the last week winner: [csscontest.com](https://csscontest.com) 13 | 14 | Every interaction related to the contest is automated, with the help of [@janethebot](https://github.com/janethebot), and the code behind the automation is here: [github.com/bitsofart/jane](https://github.com/bitsofart/jane). The website code is here: [github.com/bitsofart/csscontest.com](https://github.com/bitsofart/csscontest.com). 15 | 16 | ## How to win: 17 | 1. Fork this repo. 18 | 2. Copy the contents of the next.html file into index.html. 19 | 3. Style it: update the styles.css file as you wish. 20 | 4. Create a Pull Request. 21 | 5. Be the most voted Pull Request for the week. 22 | The PR with the most positive votes gets merged and deployed to csscontest.com, where it will stay for the whole week until the community elects a new winner. 23 | 24 | _Notice that editions (or additions) on the PR are not allowed._ 25 | 26 | ## How to become the next week's contest content creator 27 | The community also gets to choose the content for the competitions. The process of content selection happens in the form of issues on this repository, in two simple steps: 28 | 1. Create an Issue with the exact HTML markup (and only that) you want to see in the coming week contest as the body. 29 | 2. Be the most voted content suggestion for the week. 30 | The selected content becomes part of the `next.html` file. 31 | 32 | _Notice that here also, editions of the main content of the issue are not allowed. The whole discussion space is free._ 33 | 34 | ### Know more 35 | To know more about how to participate, check the following wiki pages: 36 | - [General](https://github.com/bitsofart/contest/wiki) 37 | - [Entry Submission Rules](https://github.com/bitsofart/contest/wiki/CSS-Submission) 38 | - [Content Suggestion Rules](https://github.com/bitsofart/contest/wiki/Content-suggestion) 39 | 40 | ### Contributing 41 | Contributions outside the scope of the contest are welcome here or in any of the related repositories are welcome. 42 | 43 | ### Author 44 | Vini Andrade - [@vicnicius](https://github.com/vicnicius) 45 | -------------------------------------------------------------------------------- /css/normalize.css: -------------------------------------------------------------------------------- 1 | /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ 2 | 3 | /* Document 4 | ========================================================================== */ 5 | 6 | /** 7 | * 1. Correct the line height in all browsers. 8 | * 2. Prevent adjustments of font size after orientation changes in iOS. 9 | */ 10 | 11 | html { 12 | line-height: 1.15; /* 1 */ 13 | -webkit-text-size-adjust: 100%; /* 2 */ 14 | } 15 | 16 | /* Sections 17 | ========================================================================== */ 18 | 19 | /** 20 | * Remove the margin in all browsers. 21 | */ 22 | 23 | body { 24 | margin: 0; 25 | } 26 | 27 | /** 28 | * Render the `main` element consistently in IE. 29 | */ 30 | 31 | main { 32 | display: block; 33 | } 34 | 35 | /** 36 | * Correct the font size and margin on `h1` elements within `section` and 37 | * `article` contexts in Chrome, Firefox, and Safari. 38 | */ 39 | 40 | h1 { 41 | font-size: 2em; 42 | margin: 0.67em 0; 43 | } 44 | 45 | /* Grouping content 46 | ========================================================================== */ 47 | 48 | /** 49 | * 1. Add the correct box sizing in Firefox. 50 | * 2. Show the overflow in Edge and IE. 51 | */ 52 | 53 | hr { 54 | box-sizing: content-box; /* 1 */ 55 | height: 0; /* 1 */ 56 | overflow: visible; /* 2 */ 57 | } 58 | 59 | /** 60 | * 1. Correct the inheritance and scaling of font size in all browsers. 61 | * 2. Correct the odd `em` font sizing in all browsers. 62 | */ 63 | 64 | pre { 65 | font-family: monospace, monospace; /* 1 */ 66 | font-size: 1em; /* 2 */ 67 | } 68 | 69 | /* Text-level semantics 70 | ========================================================================== */ 71 | 72 | /** 73 | * Remove the gray background on active links in IE 10. 74 | */ 75 | 76 | a { 77 | background-color: transparent; 78 | } 79 | 80 | /** 81 | * 1. Remove the bottom border in Chrome 57- 82 | * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. 83 | */ 84 | 85 | abbr[title] { 86 | border-bottom: none; /* 1 */ 87 | text-decoration: underline; /* 2 */ 88 | text-decoration: underline dotted; /* 2 */ 89 | } 90 | 91 | /** 92 | * Add the correct font weight in Chrome, Edge, and Safari. 93 | */ 94 | 95 | b, 96 | strong { 97 | font-weight: bolder; 98 | } 99 | 100 | /** 101 | * 1. Correct the inheritance and scaling of font size in all browsers. 102 | * 2. Correct the odd `em` font sizing in all browsers. 103 | */ 104 | 105 | code, 106 | kbd, 107 | samp { 108 | font-family: monospace, monospace; /* 1 */ 109 | font-size: 1em; /* 2 */ 110 | } 111 | 112 | /** 113 | * Add the correct font size in all browsers. 114 | */ 115 | 116 | small { 117 | font-size: 80%; 118 | } 119 | 120 | /** 121 | * Prevent `sub` and `sup` elements from affecting the line height in 122 | * all browsers. 123 | */ 124 | 125 | sub, 126 | sup { 127 | font-size: 75%; 128 | line-height: 0; 129 | position: relative; 130 | vertical-align: baseline; 131 | } 132 | 133 | sub { 134 | bottom: -0.25em; 135 | } 136 | 137 | sup { 138 | top: -0.5em; 139 | } 140 | 141 | /* Embedded content 142 | ========================================================================== */ 143 | 144 | /** 145 | * Remove the border on images inside links in IE 10. 146 | */ 147 | 148 | img { 149 | border-style: none; 150 | } 151 | 152 | /* Forms 153 | ========================================================================== */ 154 | 155 | /** 156 | * 1. Change the font styles in all browsers. 157 | * 2. Remove the margin in Firefox and Safari. 158 | */ 159 | 160 | button, 161 | input, 162 | optgroup, 163 | select, 164 | textarea { 165 | font-family: inherit; /* 1 */ 166 | font-size: 100%; /* 1 */ 167 | line-height: 1.15; /* 1 */ 168 | margin: 0; /* 2 */ 169 | } 170 | 171 | /** 172 | * Show the overflow in IE. 173 | * 1. Show the overflow in Edge. 174 | */ 175 | 176 | button, 177 | input { /* 1 */ 178 | overflow: visible; 179 | } 180 | 181 | /** 182 | * Remove the inheritance of text transform in Edge, Firefox, and IE. 183 | * 1. Remove the inheritance of text transform in Firefox. 184 | */ 185 | 186 | button, 187 | select { /* 1 */ 188 | text-transform: none; 189 | } 190 | 191 | /** 192 | * Correct the inability to style clickable types in iOS and Safari. 193 | */ 194 | 195 | button, 196 | [type="button"], 197 | [type="reset"], 198 | [type="submit"] { 199 | -webkit-appearance: button; 200 | } 201 | 202 | /** 203 | * Remove the inner border and padding in Firefox. 204 | */ 205 | 206 | button::-moz-focus-inner, 207 | [type="button"]::-moz-focus-inner, 208 | [type="reset"]::-moz-focus-inner, 209 | [type="submit"]::-moz-focus-inner { 210 | border-style: none; 211 | padding: 0; 212 | } 213 | 214 | /** 215 | * Restore the focus styles unset by the previous rule. 216 | */ 217 | 218 | button:-moz-focusring, 219 | [type="button"]:-moz-focusring, 220 | [type="reset"]:-moz-focusring, 221 | [type="submit"]:-moz-focusring { 222 | outline: 1px dotted ButtonText; 223 | } 224 | 225 | /** 226 | * Correct the padding in Firefox. 227 | */ 228 | 229 | fieldset { 230 | padding: 0.35em 0.75em 0.625em; 231 | } 232 | 233 | /** 234 | * 1. Correct the text wrapping in Edge and IE. 235 | * 2. Correct the color inheritance from `fieldset` elements in IE. 236 | * 3. Remove the padding so developers are not caught out when they zero out 237 | * `fieldset` elements in all browsers. 238 | */ 239 | 240 | legend { 241 | box-sizing: border-box; /* 1 */ 242 | color: inherit; /* 2 */ 243 | display: table; /* 1 */ 244 | max-width: 100%; /* 1 */ 245 | padding: 0; /* 3 */ 246 | white-space: normal; /* 1 */ 247 | } 248 | 249 | /** 250 | * Add the correct vertical alignment in Chrome, Firefox, and Opera. 251 | */ 252 | 253 | progress { 254 | vertical-align: baseline; 255 | } 256 | 257 | /** 258 | * Remove the default vertical scrollbar in IE 10+. 259 | */ 260 | 261 | textarea { 262 | overflow: auto; 263 | } 264 | 265 | /** 266 | * 1. Add the correct box sizing in IE 10. 267 | * 2. Remove the padding in IE 10. 268 | */ 269 | 270 | [type="checkbox"], 271 | [type="radio"] { 272 | box-sizing: border-box; /* 1 */ 273 | padding: 0; /* 2 */ 274 | } 275 | 276 | /** 277 | * Correct the cursor style of increment and decrement buttons in Chrome. 278 | */ 279 | 280 | [type="number"]::-webkit-inner-spin-button, 281 | [type="number"]::-webkit-outer-spin-button { 282 | height: auto; 283 | } 284 | 285 | /** 286 | * 1. Correct the odd appearance in Chrome and Safari. 287 | * 2. Correct the outline style in Safari. 288 | */ 289 | 290 | [type="search"] { 291 | -webkit-appearance: textfield; /* 1 */ 292 | outline-offset: -2px; /* 2 */ 293 | } 294 | 295 | /** 296 | * Remove the inner padding in Chrome and Safari on macOS. 297 | */ 298 | 299 | [type="search"]::-webkit-search-decoration { 300 | -webkit-appearance: none; 301 | } 302 | 303 | /** 304 | * 1. Correct the inability to style clickable types in iOS and Safari. 305 | * 2. Change font properties to `inherit` in Safari. 306 | */ 307 | 308 | ::-webkit-file-upload-button { 309 | -webkit-appearance: button; /* 1 */ 310 | font: inherit; /* 2 */ 311 | } 312 | 313 | /* Interactive 314 | ========================================================================== */ 315 | 316 | /* 317 | * Add the correct display in Edge, IE 10+, and Firefox. 318 | */ 319 | 320 | details { 321 | display: block; 322 | } 323 | 324 | /* 325 | * Add the correct display in all browsers. 326 | */ 327 | 328 | summary { 329 | display: list-item; 330 | } 331 | 332 | /* Misc 333 | ========================================================================== */ 334 | 335 | /** 336 | * Add the correct display in IE 10+. 337 | */ 338 | 339 | template { 340 | display: none; 341 | } 342 | 343 | /** 344 | * Add the correct display in IE 10. 345 | */ 346 | 347 | [hidden] { 348 | display: none; 349 | } 350 | -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bitsofart/contest/8bbc83166e1249839b397b309e63e071abf6a682/favicon.ico -------------------------------------------------------------------------------- /img/logo.svg: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CSS Contest - An open contest for people who love CSS. 6 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 |
17 |

Hello, CSS world!

18 | 19 |
20 | 44 |
45 | 46 | 47 | -------------------------------------------------------------------------------- /next.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CSS Contest - An open contest for people who love CSS. 6 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 |
17 |

Achieving CSS mastery

18 |

To craft the fascinating, knowing yourself is as important as knowing your tools.

19 |
20 |

"Here is a rule to remember in future, when anything tempts you to feel bitter: not "This is misfortune," but "To bear this worthily is good fortune."

21 |
—Marcus Aurelius, Meditations
22 |
23 | 24 | 25 |
26 | 50 |
51 | 52 | 53 | -------------------------------------------------------------------------------- /site.webmanifest: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "", 3 | "name": "", 4 | "icons": [{ 5 | "src": "icon.png", 6 | "type": "image/png", 7 | "sizes": "192x192" 8 | }], 9 | "start_url": "/?utm_source=homescreen", 10 | "background_color": "#fafafa", 11 | "theme_color": "#fafafa" 12 | } 13 | -------------------------------------------------------------------------------- /styles.css: -------------------------------------------------------------------------------- 1 | /* 🦆 🦆 🦆 🦆 🦆 🦆 🦆 🦆 🦆 🦆 🦆 🦆 🦆 🦆 🦆 🦆 🦆 */ 2 | 3 | @import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,900;1,500&display=swap'); 4 | 5 | body { 6 | max-height: 100vh; 7 | overflow-x: hidden; 8 | font-size: clamp(100%, 4vw, 1.5em); 9 | font-family: 'Montserrat', sans-serif; 10 | text-transform: uppercase; 11 | background-color:silver; 12 | background-image: 13 | radial-gradient(circle at 100% 150%, silver 24%, white 24%, white 28%, silver 28%, silver 36%, white 36%, white 40%, transparent 40%, transparent), 14 | radial-gradient(circle at 0 150%, silver 24%, white 24%, white 28%, silver 28%, silver 36%, white 36%, white 40%, transparent 40%, transparent), 15 | radial-gradient(circle at 50% 100%, white 10%, silver 10%, silver 23%, white 23%, white 30%, silver 30%, silver 43%, white 43%, white 50%, silver 50%, silver 63%, white 63%, white 71%, transparent 71%, transparent), 16 | radial-gradient(circle at 100% 50%, white 5%, silver 5%, silver 15%, white 15%, white 20%, silver 20%, silver 29%, white 29%, white 34%, silver 34%, silver 44%, white 44%, white 49%, transparent 49%, transparent), 17 | radial-gradient(circle at 0 50%, white 5%, silver 5%, silver 15%, white 15%, white 20%, silver 20%, silver 29%, white 29%, white 34%, silver 34%, silver 44%, white 44%, white 49%, transparent 49%, transparent); 18 | background-size: 100px 50px; 19 | } 20 | 21 | main { 22 | display: flex; 23 | flex-direction: column-reverse; 24 | max-width: 80vw; 25 | margin: 0 auto; 26 | padding-top: 5em; 27 | } 28 | 29 | .content, .footer { 30 | display: inline-block; 31 | } 32 | 33 | .footer { 34 | display: flex; 35 | flex-direction: row; 36 | justify-content: space-around; 37 | width: 100%; 38 | font-style: italic; 39 | font-weight: 500; 40 | } 41 | 42 | .footer p { 43 | display: inline-block; 44 | transform: rotate(-25deg); 45 | height: 2em; 46 | padding: 0.25em; 47 | background-color: hsl(212, 70%, 62%); 48 | background: linear-gradient(hsl(212, 70%, 62%) 0%, hsl(213, 89%, 29%) 100%); 49 | } 50 | .footer p::after { 51 | content: '☝'; 52 | display: block; 53 | width: 1.25em; 54 | height: 1.25em; 55 | margin: 0.5em auto; 56 | font-size: 2em; 57 | font-style: initial; 58 | transform-origin: 50% 100%; 59 | animation: point .5s ease-in-out infinite alternate; 60 | } 61 | 62 | h1 { 63 | text-align: right; 64 | word-spacing: 100vw; 65 | font-size: 8em; 66 | color: hsl(221, 44%, 19%); 67 | filter: 68 | drop-shadow(5px -2.5px hsl(212, 70%, 62%)) 69 | drop-shadow(5px -2.5px hsl(214, 42%, 26%)); 70 | } 71 | 72 | em:hover { 73 | display: inline-block; 74 | transform-origin: bottom center; 75 | animation: intensify 5s ease-out; 76 | } 77 | 78 | p { 79 | font-weight: bold; 80 | } 81 | a, a:visited, a:hover, a:active { 82 | display: block; 83 | margin: 0 auto; 84 | font-weight: initial; 85 | text-decoration: none; 86 | color: hsl(330, 100%, 50%); 87 | } 88 | 89 | .logo { 90 | position: fixed; 91 | bottom: 0; 92 | left: 0; 93 | background: ivory; 94 | mix-blend-mode: difference; 95 | filter: invert(100%); 96 | } 97 | 98 | @media (max-width: 980px) { 99 | main { 100 | display: grid; 101 | padding-top: initial; 102 | } 103 | 104 | h1 { 105 | display: inline-block; 106 | text-align: right; 107 | font-size: 3em; 108 | } 109 | 110 | .footer { 111 | display: flex; 112 | flex-direction: column; 113 | width: 50%; 114 | right: 0; 115 | margin-left: 50%; 116 | } 117 | 118 | .footer p { 119 | margin-top: 3em; 120 | font-size: 16px; 121 | } 122 | .footer p::after { 123 | font-size: 24px; 124 | } 125 | } 126 | 127 | @keyframes point { 128 | from { transform: translateX(-0%) rotate(-25deg); } 129 | to { transform: translateX(150%) rotate(45deg); } 130 | } 131 | 132 | /* https://github.com/tholman/obnoxious.css/blob/master/obnoxious.css */ 133 | @keyframes intensify { 134 | 0% { 135 | transform: translate(1px, 1px) scale(1); 136 | } 137 | 1% { 138 | transform: translate(-1px, -1px) scale(1.02); 139 | } 140 | 2% { 141 | transform: translate(1px, 2px) scale(1.04); 142 | } 143 | 3% { 144 | transform: translate(-3px, -1px) scale(1.06); 145 | } 146 | 4% { 147 | transform: translate(3px, 3px) scale(1.08); 148 | } 149 | 5% { 150 | transform: translate(-4px, -5px) scale(1.1); 151 | } 152 | 6% { 153 | transform: translate(4px, 4px) scale(1.12); 154 | } 155 | 7% { 156 | transform: translate(-1px, -2px) scale(1.14); 157 | } 158 | 8% { 159 | transform: translate(5px, 1px) scale(1.16); 160 | } 161 | 9% { 162 | transform: translate(-4px, -10px) scale(1.18); 163 | } 164 | 10% { 165 | transform: translate(7px, 7px) scale(1.2); 166 | } 167 | 11% { 168 | transform: translate(-8px, -7px) scale(1.22); 169 | } 170 | 12% { 171 | transform: translate(1px, 8px) scale(1.24); 172 | } 173 | 13% { 174 | transform: translate(-2px, -10px) scale(1.26); 175 | } 176 | 14% { 177 | transform: translate(14px, 7px) scale(1.28); 178 | } 179 | 15% { 180 | transform: translate(-14px, -6px) scale(1.3); 181 | } 182 | 16% { 183 | transform: translate(2px, 6px) scale(1.32); 184 | } 185 | 17% { 186 | transform: translate(-16px, -4px) scale(1.34); 187 | } 188 | 18% { 189 | transform: translate(11px, 12px) scale(1.36); 190 | } 191 | 19% { 192 | transform: translate(-4px, -17px) scale(1.38); 193 | } 194 | 20% { 195 | transform: translate(12px, 7px) scale(1.4); 196 | } 197 | 21% { 198 | transform: translate(-11px, -13px) scale(1.42); 199 | } 200 | 22% { 201 | transform: translate(4px, 22px) scale(1.44); 202 | } 203 | 23% { 204 | transform: translate(-13px, -24px) scale(1.46); 205 | } 206 | 24% { 207 | transform: translate(23px, 5px) scale(1.48); 208 | } 209 | 25% { 210 | transform: translate(-15px, -16px) scale(1.5); 211 | } 212 | 26% { 213 | transform: translate(16px, 7px) scale(1.52); 214 | } 215 | 27% { 216 | transform: translate(-25px, -11px) scale(1.54); 217 | } 218 | 28% { 219 | transform: translate(25px, 20px) scale(1.56); 220 | } 221 | 29% { 222 | transform: translate(-16px, -20px) scale(1.58); 223 | } 224 | 30% { 225 | transform: translate(12px, 23px) scale(1.6); 226 | } 227 | 31% { 228 | transform: translate(-15px, -18px) scale(1.62); 229 | } 230 | 32% { 231 | transform: translate(3px, 27px) scale(1.64); 232 | } 233 | 33% { 234 | transform: translate(-18px, -14px) scale(1.66); 235 | } 236 | 34% { 237 | transform: translate(14px, 9px) scale(1.68); 238 | } 239 | 35% { 240 | transform: translate(-28px, -23px) scale(1.7); 241 | } 242 | 36% { 243 | transform: translate(12px, 30px) scale(1.72); 244 | } 245 | 37% { 246 | transform: translate(-25px, -27px) scale(1.74); 247 | } 248 | 38% { 249 | transform: translate(39px, 1px) scale(1.76); 250 | } 251 | 39% { 252 | transform: translate(-10px, -32px) scale(1.78); 253 | } 254 | 40% { 255 | transform: translate(15px, 35px) scale(1.8); 256 | } 257 | 41% { 258 | transform: translate(-27px, -15px) scale(1.82); 259 | } 260 | 42% { 261 | transform: translate(15px, 41px) scale(1.84); 262 | } 263 | 43% { 264 | transform: translate(-39px, -4px) scale(1.86); 265 | } 266 | 44% { 267 | transform: translate(34px, 19px) scale(1.88); 268 | } 269 | 45% { 270 | transform: translate(-4px, -45px) scale(1.9); 271 | } 272 | 46% { 273 | transform: translate(38px, 7px) scale(1.92); 274 | } 275 | 47% { 276 | transform: translate(-21px, -1px) scale(1.94); 277 | } 278 | 48% { 279 | transform: translate(19px, 6px) scale(1.96); 280 | } 281 | 49% { 282 | transform: translate(-49px, -25px) scale(1.98); 283 | } 284 | 50% { 285 | transform: translate(25px, 25px) scale(2); 286 | } 287 | 51% { 288 | transform: translate(-33px, -24px) scale(2.02); 289 | } 290 | 52% { 291 | transform: translate(45px, 36px) scale(2.04); 292 | } 293 | 53% { 294 | transform: translate(-44px, -7px) scale(2.06); 295 | } 296 | 54% { 297 | transform: translate(30px, 28px) scale(2.08); 298 | } 299 | 55% { 300 | transform: translate(-4px, -27px) scale(2.1); 301 | } 302 | 56% { 303 | transform: translate(17px, 18px) scale(2.12); 304 | } 305 | 57% { 306 | transform: translate(-4px, -12px) scale(2.14); 307 | } 308 | 58% { 309 | transform: translate(1px, 50px) scale(2.16); 310 | } 311 | 59% { 312 | transform: translate(-8px, -36px) scale(2.18); 313 | } 314 | 60% { 315 | transform: translate(29px, 26px) scale(2.2); 316 | } 317 | 61% { 318 | transform: translate(-24px, -21px) scale(2.22); 319 | } 320 | 62% { 321 | transform: translate(60px, 21px) scale(2.24); 322 | } 323 | 63% { 324 | transform: translate(-9px, -36px) scale(2.26); 325 | } 326 | 64% { 327 | transform: translate(44px, 1px) scale(2.28); 328 | } 329 | 65% { 330 | transform: translate(-38px, -40px) scale(2.3); 331 | } 332 | 66% { 333 | transform: translate(42px, 33px) scale(2.32); 334 | } 335 | 67% { 336 | transform: translate(-17px, -45px) scale(2.34); 337 | } 338 | 68% { 339 | transform: translate(1px, 17px) scale(2.36); 340 | } 341 | 69% { 342 | transform: translate(-20px, -62px) scale(2.38); 343 | } 344 | 70% { 345 | transform: translate(6px, 53px) scale(2.4); 346 | } 347 | 71% { 348 | transform: translate(-64px, -14px) scale(2.42); 349 | } 350 | 72% { 351 | transform: translate(67px, 48px) scale(2.44); 352 | } 353 | 73% { 354 | transform: translate(-47px, -39px) scale(2.46); 355 | } 356 | 74% { 357 | transform: translate(5px, 62px) scale(2.48); 358 | } 359 | 75% { 360 | transform: translate(-29px, -50px) scale(2.5); 361 | } 362 | 76% { 363 | transform: translate(5px, 60px) scale(2.52); 364 | } 365 | 77% { 366 | transform: translate(-51px, -76px) scale(2.54); 367 | } 368 | 78% { 369 | transform: translate(58px, 16px) scale(2.56); 370 | } 371 | 79% { 372 | transform: translate(-79px, -32px) scale(2.58); 373 | } 374 | 80% { 375 | transform: translate(41px, 22px) scale(2.6); 376 | } 377 | 81% { 378 | transform: translate(-43px, -48px) scale(2.62); 379 | } 380 | 82% { 381 | transform: translate(35px, 65px) scale(2.64); 382 | } 383 | 83% { 384 | transform: translate(-65px, -84px) scale(2.66); 385 | } 386 | 84% { 387 | transform: translate(62px, 73px) scale(2.68); 388 | } 389 | 85% { 390 | transform: translate(-48px, -40px) scale(2.7); 391 | } 392 | 86% { 393 | transform: translate(30px, 25px) scale(2.72); 394 | } 395 | 87% { 396 | transform: translate(-16px, -46px) scale(2.74); 397 | } 398 | 88% { 399 | transform: translate(81px, 73px) scale(2.76); 400 | } 401 | 89% { 402 | transform: translate(-79px, -76px) scale(2.78); 403 | } 404 | 90% { 405 | transform: translate(55px, 62px) scale(2.8); 406 | } 407 | 91% { 408 | transform: translate(-44px, -56px) scale(2.82); 409 | } 410 | 92% { 411 | transform: translate(46px, 91px) scale(2.84); 412 | } 413 | 93% { 414 | transform: translate(-48px, -34px) scale(2.86); 415 | } 416 | 94% { 417 | transform: translate(18px, 10px) scale(2.88); 418 | } 419 | 95% { 420 | transform: translate(-11px, -4px) scale(2.9); 421 | } 422 | 96% { 423 | transform: translate(14px, 80px) scale(2.92); 424 | } 425 | 97% { 426 | transform: translate(-29px, -54px) scale(2.94); 427 | } 428 | 98% { 429 | transform: translate(51px, 95px) scale(2.96); 430 | } 431 | 99% { 432 | transform: translate(-71px, -4px) scale(2.98); 433 | } 434 | 100% { 435 | transform: translate(0, 0) rotate(0deg); 436 | } 437 | } 438 | -------------------------------------------------------------------------------- /template.hbs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CSS Contest - An open contest for people who love CSS. 6 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 |
17 | {{ sanitize content }} 18 |
19 | 43 |
44 | 45 | 46 | --------------------------------------------------------------------------------