├── .gitignore ├── README.md ├── components.css ├── index.html ├── main.css └── variables.css /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | *.codekit 3 | 4 | config.codekit 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # modulator 2 | 3 | ![](https://i.imgur.com/KG8uHPD.png) 4 | -------------------------------------------------------------------------------- /components.css: -------------------------------------------------------------------------------- 1 | .components-section { 2 | padding-bottom: 48px; 3 | margin-bottom: 48px; 4 | box-shadow: 0 1px rgba(0,0,0,.1); 5 | } 6 | 7 | .components-variables-section { 8 | background-color: hsl(219, 43%, 97%); 9 | margin-left: calc(-1 * var(--contentPadding)); 10 | margin-right: calc(-1 * var(--contentPadding)); 11 | margin-top: calc(-1 * var(--contentPadding)); 12 | padding-top: var(--contentPadding); 13 | padding-left: var(--contentPadding); 14 | padding-right: var(--contentPadding); 15 | } 16 | 17 | @media (max-width: 720px) { 18 | .components-variables-section { 19 | padding-top: 128px; 20 | } 21 | } 22 | 23 | .components-section-title { 24 | font-size: var(--fontSize-2); 25 | line-height: var(--lineHeight-2); 26 | margin-bottom: 32px; 27 | font-weight: 700; 28 | } 29 | 30 | .components-section-row { 31 | display: flex; 32 | flex-wrap: wrap; 33 | } 34 | 35 | .components-section-col { 36 | flex-grow: 1; 37 | } 38 | 39 | .components-section-col:not(:last-child) { 40 | margin-right: 32px; 41 | } 42 | 43 | .components-section-spacers-col { 44 | flex-grow: 0; 45 | } 46 | 47 | .size-box { 48 | width: 32px; 49 | height: 16px; 50 | margin-bottom: 4px; 51 | background-color: #008FE5; 52 | } 53 | 54 | .size-box-section-description { 55 | opacity: .6; 56 | margin-bottom: 8px; 57 | } 58 | 59 | .size-box-section { 60 | margin-bottom: 32px; 61 | } 62 | 63 | .size0 { 64 | font-size: var(--fontSize-0); 65 | line-height: var(--lineHeight-0); 66 | } 67 | 68 | .size1 { 69 | font-size: var(--fontSize-1); 70 | line-height: var(--lineHeight-1); 71 | } 72 | 73 | .size2 { 74 | font-size: var(--fontSize-2); 75 | line-height: var(--lineHeight-2); 76 | } 77 | 78 | .size3 { 79 | font-size: var(--fontSize-3); 80 | line-height: var(--lineHeight-3); 81 | } 82 | 83 | .font-size { 84 | margin-bottom: 8px; 85 | } 86 | 87 | .maxw-sm { max-width: var(--width-sm) } 88 | .maxw-md { max-width: var(--width-md) } 89 | .maxw-lg { max-width: var(--width-lg) } 90 | .maxw-xlg { max-width: var(--width-xlg) } 91 | 92 | 93 | .btn { 94 | background-color: #444444; 95 | color: white; 96 | padding: var(--space-sm) var(--space-md); 97 | display: inline-block; 98 | appearance: none; 99 | -webkit-appearance: none; 100 | text-decoration: none; 101 | font: inherit; 102 | border: 0; 103 | border-radius: 3px; 104 | cursor: pointer; 105 | } 106 | 107 | .input-field { 108 | font: inherit; 109 | padding: var(--space-sm) var(--space-md); 110 | border-radius: 3px; 111 | border: 0; 112 | box-shadow: inset 0 0 0 1px #ccc; 113 | color: inherit; 114 | width: 100%; 115 | } 116 | 117 | .input-group-label { 118 | margin-bottom: var(--space-sm); 119 | } 120 | 121 | .form-section { 122 | margin-bottom: var(--space-md); 123 | } 124 | 125 | .card { 126 | padding: var(--space-md) var(--space-lg); 127 | border-radius: 3px; 128 | border: 1px solid #ccc; 129 | } 130 | 131 | .card-header { 132 | font-size: var(--fontSize-2); 133 | line-height: var(--lineHeight-2); 134 | margin-bottom: var(--space-md); 135 | } 136 | 137 | .list-item:not(:first-child) { 138 | padding-top: var(--space-md); 139 | } 140 | 141 | .list-item:not(:last-child) { 142 | border-bottom: 1px solid #ccc; 143 | padding-bottom: var(--space-md); 144 | } 145 | 146 | .list-sm .list-item:not(:first-child) { 147 | padding-top: var(--space-sm); 148 | } 149 | 150 | .list-sm .list-item:not(:last-child) { 151 | padding-bottom: var(--space-sm); 152 | } 153 | 154 | .list-lg .list-item:not(:first-child) { 155 | padding-top: var(--space-lg); 156 | } 157 | 158 | .list-lg .list-item:not(:last-child) { 159 | padding-bottom: var(--space-lg); 160 | } 161 | 162 | .avatar { 163 | display: flex; 164 | align-items: center; 165 | } 166 | 167 | .avatar-img { 168 | border-radius: 50%; 169 | width: calc(var(--u) * 4); 170 | } 171 | 172 | .avatar-letter { 173 | border-radius: 50%; 174 | width: calc(var(--u) * 4); 175 | height: calc(var(--u) * 4); 176 | background-color: #ddd; 177 | display: inline-flex; 178 | align-items: center; 179 | justify-content: center; 180 | text-transform: uppercase; 181 | } 182 | 183 | .avatar-info { 184 | margin-left: var(--space-sm); 185 | } 186 | 187 | .dropdown-trigger { 188 | padding: var(--space-sm) var(--space-md); 189 | border-radius: 3px; 190 | box-shadow: inset 0 0 0 1px #ccc; 191 | position: relative; 192 | cursor: pointer; 193 | } 194 | 195 | .dropdown.isopen .dropdown-trigger { 196 | border-radius: 3px 3px 0 0; 197 | } 198 | 199 | .dropdown-trigger:after { 200 | content: ''; 201 | width: 8px; 202 | height: 8px; 203 | right: var(--space-md); 204 | top: 0; 205 | bottom: 6px; 206 | margin: auto; 207 | display: block; 208 | position: absolute; 209 | box-shadow: 1px 1px currentColor; 210 | transform: rotate(45deg); 211 | } 212 | 213 | .dropdown-menu { 214 | display: none; 215 | border: 1px solid #ccc; 216 | border-width: 0 1px 1px 1px; 217 | border-radius: 0 0 3px 3px; 218 | padding: var(--space-sm) 0; 219 | } 220 | 221 | .dropdown.isopen .dropdown-menu { 222 | display: block; 223 | } 224 | 225 | .dropdown-menu-item { 226 | padding: var(--space-sm) var(--space-md); 227 | cursor: pointer; 228 | } -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Modulator 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 187 | 188 |
189 | 190 | 193 | 194 |
195 | 196 |
197 |
198 |
199 |
unit
200 |
201 | adjust the unit on the left sidebar 202 |
203 | 204 |
205 |
206 | 207 |
208 |
spaces
209 |
210 | adjust the spaces on the left sidebar 211 |
212 | 213 |
214 |
215 |
216 |
217 |
218 | 219 |
220 |
widths
221 |
222 | adjust the widths on the left sidebar 223 |
224 | 225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
type scale
234 |
adjust the sizes on the left sidebar
235 | 236 |
237 | / 238 | 239 | – size 3 240 |
241 | 242 |
243 | / 244 | 245 | – size 2 246 |
247 | 248 |
249 | / 250 | 251 | – size 1 252 |
253 | 254 |
255 | / 256 | 257 | – size 0 258 |
259 |
260 |
261 |
262 | 263 |
264 | 265 |
266 |
Button
267 | 268 |
269 | 270 |
271 |
Input
272 |
273 | 274 |
275 |
276 | 277 |
278 |
Dropdown
279 | 280 |
281 |
282 | 290 |
291 | 292 |
293 | 301 |
302 |
303 |
304 | 305 |
306 |
Form
307 |
308 |
309 |
310 |
label
311 | 312 |
313 |
314 |
315 |
316 |
label
317 | 318 |
319 |
320 |
321 |
322 |
label
323 | 331 |
332 |
333 |
334 | 335 |
336 |
337 |
338 | 339 |
340 |
Card
341 |
342 |
343 |
344 | Card title 345 |
346 | Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. 347 |
348 |
349 |
350 | 351 |
352 |
List
353 |
354 | 355 |
356 | 357 |
358 |
359 | list item 360 |
361 |
362 | list item 363 |
364 |
365 | list item 366 |
367 |
368 | 369 |
370 |
371 | 372 |
373 |
374 | list item 375 |
376 |
377 | list item 378 |
379 |
380 | list item 381 |
382 |
383 | 384 |
385 |
386 | 387 |
388 |
389 | list item 390 |
391 |
392 | list item 393 |
394 |
395 | list item 396 |
397 |
398 |
399 | 400 |
401 |
402 | 403 |
404 |
Avatar
405 |
406 | 407 |
408 | Sophia Kelley 409 |
410 |
411 |
412 |
413 |
cf
414 |
415 |
416 | 417 |
418 |
419 | 420 | 466 | 467 | 468 | -------------------------------------------------------------------------------- /main.css: -------------------------------------------------------------------------------- 1 | *,*:before,*:after { 2 | box-sizing: border-box; 3 | } 4 | 5 | *:focus { 6 | outline-color: var(--blue); 7 | } 8 | 9 | body { 10 | margin: 0; 11 | font-size: 12px; 12 | line-height: 20px; 13 | font-family: 'Space Mono', monospace; 14 | color: #6c6c6c; 15 | -webkit-font-smoothing: antialiased; 16 | -moz-osx-font-smoothing: grayscale; 17 | } 18 | 19 | img { 20 | max-width: 100%; 21 | } 22 | 23 | .global-container { 24 | display: flex; 25 | height: 100vh; 26 | } 27 | 28 | .sidebar { 29 | border-right: 1px solid #D8D8D8; 30 | overflow: auto; 31 | flex-shrink: 0; 32 | transition: .2s; 33 | } 34 | 35 | @media (max-width: 720px) { 36 | .global-container { 37 | position: relative; 38 | } 39 | 40 | .sidebar { 41 | background-color: white; 42 | transform: translateX(-100%); 43 | position: absolute; 44 | left: 0; 45 | top: 0; 46 | z-index: 100; 47 | } 48 | 49 | .sidebar.isopen { 50 | transform: translateX(0%); 51 | } 52 | 53 | .sidebar-backdrop { 54 | position: fixed; 55 | width: 0; 56 | height: 100%; 57 | background-color: var(--blueLight); 58 | opacity: 0; 59 | z-index: 90; 60 | } 61 | 62 | .sidebar.isopen + .sidebar-backdrop { 63 | opacity: .8; 64 | width: 100%; 65 | } 66 | } 67 | 68 | .main-title { 69 | padding: 8px 24px; 70 | font-size: 22px; 71 | line-height: 32px; 72 | font-weight: 400; 73 | margin-bottom: 64px; 74 | } 75 | 76 | .sidebar-toggle { 77 | display: none; 78 | } 79 | 80 | @media (max-width: 720px) { 81 | .main-title { 82 | opacity: 0; 83 | } 84 | 85 | .sidebar-toggle { 86 | position: fixed; 87 | top: 16px; 88 | left: 24; 89 | z-index: 120; 90 | width: 100%; 91 | font-family: 'Space Mono', monospace; 92 | font-size: 20px; 93 | line-height: 28px; 94 | color: #6c6c6c; 95 | display: block; 96 | } 97 | 98 | .sidebar-toggle span { 99 | background-color: white; 100 | padding: 6px 16px 8px 16px; 101 | border: 1px solid #D8D8D8; 102 | display: inline-block; 103 | z-index: 1; 104 | } 105 | } 106 | 107 | .main-section { 108 | padding: var(--contentPadding); 109 | overflow: auto; 110 | flex-grow: 1; 111 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; 112 | font-size: var(--fontSize-0); 113 | line-height: var(--lineHeight-0); 114 | color: #444444; 115 | overflow-x: hidden; 116 | } 117 | 118 | .st-section { 119 | padding: 16px 24px 8px 24px; 120 | border-bottom: 1px solid #D8D8D8; 121 | transition: .4s; 122 | } 123 | 124 | .st-section:first-of-type { 125 | border-top: 1px solid #D8D8D8; 126 | } 127 | 128 | .st-section:hover { 129 | background-color: var(--blueLight); 130 | transition: .15s; 131 | } 132 | 133 | .st-section-title { 134 | margin-bottom: 12px; 135 | text-transform: uppercase; 136 | font-size: 11px; 137 | line-height: 18px; 138 | letter-spacing: 1px; 139 | font-weight: 700; 140 | } 141 | 142 | .st-title { 143 | width: 106px; 144 | } 145 | 146 | .st-row { 147 | display: flex; 148 | padding-bottom: 8px; 149 | cursor: pointer; 150 | } 151 | 152 | .st-row-group { 153 | margin-bottom: 8px; 154 | } 155 | 156 | .st-row-group-title { 157 | font-weight: 700; 158 | margin-bottom: 8px; 159 | } 160 | 161 | .st-content { 162 | display: flex; 163 | } 164 | 165 | .st-input, 166 | .st-input-unit { 167 | width: 24px; 168 | font: inherit; 169 | color: inherit; 170 | border: 0; 171 | padding: 0; 172 | border-bottom: 2px solid rgba(0,0,0,.15); 173 | text-align: center; 174 | margin-right: 8px; 175 | background-color: transparent; 176 | -moz-appearance: textfield; 177 | } 178 | 179 | .st-input::-moz-selection, 180 | .st-input-unit::-moz-selection { 181 | background-color: var(--blue); 182 | color: white; 183 | } 184 | .st-input::selection, 185 | .st-input-unit::selection { 186 | background-color: var(--blue); 187 | color: white; 188 | } 189 | 190 | .st-input:focus, 191 | .st-input-unit:focus { 192 | border-bottom-color: var(--blue); 193 | outline: 0; 194 | } 195 | 196 | .st-input-unit[type=number]::-webkit-inner-spin-button, 197 | .st-input-unit[type=number]::-webkit-outer-spin-button { 198 | -webkit-appearance: none; 199 | margin: 0; 200 | } 201 | 202 | .st-input[type=number]::-webkit-inner-spin-button, 203 | .st-input[type=number]::-webkit-outer-spin-button { 204 | -webkit-appearance: none; 205 | margin: 0; 206 | } 207 | 208 | .author-section { 209 | padding: 96px 24px 24px 24px; 210 | } 211 | 212 | .link { 213 | text-decoration: none; 214 | color: inherit; 215 | border-bottom: 1px solid; 216 | } -------------------------------------------------------------------------------- /variables.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --u:8px; 3 | 4 | --space-sm: calc(var(--u) * 1); 5 | --space-md: calc(var(--u) * 2); 6 | --space-lg: calc(var(--u) * 3); 7 | --space-xlg: calc(var(--u) * 8); 8 | 9 | --width-sm: calc(var(--u) * 8); 10 | --width-md: calc(var(--u) * 16); 11 | --width-lg: calc(var(--u) * 32); 12 | --width-xlg: calc(var(--u) * 64); 13 | 14 | --fontSize-0: 14px; 15 | --fontSize-1: 18px; 16 | --fontSize-2: 22px; 17 | --fontSize-3: 30px; 18 | 19 | --lineHeight-0: calc(var(--u) * 2,5); 20 | --lineHeight-1: calc(var(--u) * 3); 21 | --lineHeight-2: calc(var(--u) * 4); 22 | --lineHeight-3: calc(var(--u) * 5); 23 | 24 | --blue: #008FE5; 25 | --blueLight: hsl(219, 43%, 97%); 26 | 27 | --contentPadding: 64px; 28 | } 29 | 30 | @media (max-width: 720px) { 31 | :root { 32 | --contentPadding: 32px; 33 | } 34 | } --------------------------------------------------------------------------------