|
| 1 | +--- |
| 2 | +# Custom theme for code curious. |
| 3 | +# The front-matter dashes are required so Jekyll processes this file through Sass |
| 4 | +# and outputs /assets/main.css (this file overrides the one shipped by minima). |
| 5 | +--- |
| 6 | + |
| 7 | +// =========================================================================== |
| 8 | +// Brand variables — set BEFORE importing minima so they override its |
| 9 | +// `!default` values (palette: warm & friendly / coral). |
| 10 | +// =========================================================================== |
| 11 | +$brand-color: #e8552a; // coral accent |
| 12 | +$text-color: #1f2421; // warm near-black |
| 13 | +$background-color: #fffdf9; // warm off-white |
| 14 | +$grey-color: #6b6b66; |
| 15 | + |
| 16 | +$base-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; |
| 17 | +$base-font-size: 18px; |
| 18 | +$base-line-height: 1.7; |
| 19 | +$spacing-unit: 32px; |
| 20 | +$content-width: 860px; |
| 21 | + |
| 22 | +@import "minima"; |
| 23 | + |
| 24 | +// =========================================================================== |
| 25 | +// Custom styles layered on top of minima |
| 26 | +// =========================================================================== |
| 27 | + |
| 28 | +$accent-dark: #c8431d; |
| 29 | + |
| 30 | +body { |
| 31 | + -webkit-font-smoothing: antialiased; |
| 32 | + text-rendering: optimizeLegibility; |
| 33 | +} |
| 34 | + |
| 35 | +// --- Headings -------------------------------------------------------------- |
| 36 | +h1, h2, h3, h4, h5, h6 { |
| 37 | + font-weight: 700; |
| 38 | + line-height: 1.25; |
| 39 | + color: $text-color; |
| 40 | + margin-top: $spacing-unit * 1.1; |
| 41 | + margin-bottom: $spacing-unit * 0.45; |
| 42 | +} |
| 43 | +h1 { font-size: 2.4rem; letter-spacing: -0.02em; } |
| 44 | +h2 { font-size: 1.7rem; } |
| 45 | +h3 { font-size: 1.3rem; } |
| 46 | + |
| 47 | +// Subtle accent rule under section headings |
| 48 | +.post-content h2, |
| 49 | +.home h2 { |
| 50 | + padding-bottom: 6px; |
| 51 | + border-bottom: 2px solid rgba($brand-color, 0.18); |
| 52 | +} |
| 53 | + |
| 54 | +// --- Links ----------------------------------------------------------------- |
| 55 | +a { |
| 56 | + color: $brand-color; |
| 57 | + text-decoration: none; |
| 58 | + transition: color 0.15s ease; |
| 59 | + &:hover { color: $accent-dark; text-decoration: underline; } |
| 60 | +} |
| 61 | + |
| 62 | +// --- Site header ----------------------------------------------------------- |
| 63 | +.site-header { |
| 64 | + border-top: none; |
| 65 | + border-bottom: 1px solid rgba($text-color, 0.08); |
| 66 | + background: #ffffff; |
| 67 | + box-shadow: 0 1px 0 rgba($text-color, 0.03); |
| 68 | +} |
| 69 | +.site-title, |
| 70 | +.site-title:visited { |
| 71 | + font-weight: 800; |
| 72 | + letter-spacing: -0.02em; |
| 73 | + color: $text-color !important; |
| 74 | +} |
| 75 | +.site-title:hover { color: $brand-color !important; text-decoration: none; } |
| 76 | +.site-nav .page-link { |
| 77 | + color: $text-color; |
| 78 | + font-weight: 500; |
| 79 | + &:hover { color: $brand-color; text-decoration: none; } |
| 80 | +} |
| 81 | + |
| 82 | +// --- Homepage hero --------------------------------------------------------- |
| 83 | +.home > h1:first-of-type { |
| 84 | + font-size: 2.7rem; |
| 85 | + margin-top: $spacing-unit; |
| 86 | +} |
| 87 | + |
| 88 | +// --- Responsive video embed (16:9) ----------------------------------------- |
| 89 | +.embed-container { |
| 90 | + position: relative; |
| 91 | + padding-bottom: 56.25%; |
| 92 | + height: 0; |
| 93 | + overflow: hidden; |
| 94 | + max-width: 100%; |
| 95 | + border-radius: 14px; |
| 96 | + box-shadow: 0 10px 30px rgba($text-color, 0.12); |
| 97 | + margin: $spacing-unit 0; |
| 98 | + |
| 99 | + iframe { |
| 100 | + position: absolute; |
| 101 | + top: 0; |
| 102 | + left: 0; |
| 103 | + width: 100%; |
| 104 | + height: 100%; |
| 105 | + border: 0; |
| 106 | + } |
| 107 | +} |
| 108 | + |
| 109 | +// --- Images in content ----------------------------------------------------- |
| 110 | +.post-content img, |
| 111 | +.home img { border-radius: 12px; } |
| 112 | + |
| 113 | +// --- Post list rendered as cards (homepage, blog & events) ----------------- |
| 114 | +.post-list { |
| 115 | + margin-left: 0; |
| 116 | + list-style: none; |
| 117 | + display: grid; |
| 118 | + gap: $spacing-unit * 0.7; |
| 119 | + |
| 120 | + > li { |
| 121 | + background: #ffffff; |
| 122 | + border: 1px solid rgba($text-color, 0.08); |
| 123 | + border-radius: 14px; |
| 124 | + padding: $spacing-unit * 0.8 $spacing-unit; |
| 125 | + margin-bottom: 0; |
| 126 | + box-shadow: 0 1px 2px rgba($text-color, 0.04); |
| 127 | + transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease; |
| 128 | + |
| 129 | + &:hover { |
| 130 | + transform: translateY(-2px); |
| 131 | + box-shadow: 0 8px 24px rgba($text-color, 0.10); |
| 132 | + border-color: rgba($brand-color, 0.35); |
| 133 | + } |
| 134 | + } |
| 135 | + |
| 136 | + .post-meta { |
| 137 | + color: $brand-color; |
| 138 | + font-size: 0.8rem; |
| 139 | + font-weight: 600; |
| 140 | + text-transform: uppercase; |
| 141 | + letter-spacing: 0.04em; |
| 142 | + } |
| 143 | + |
| 144 | + h3 { |
| 145 | + margin: 4px 0 0; |
| 146 | + |
| 147 | + a.post-link { color: $text-color; } |
| 148 | + a.post-link:hover { color: $brand-color; text-decoration: none; } |
| 149 | + } |
| 150 | + |
| 151 | + p { |
| 152 | + font-weight: 400; |
| 153 | + font-size: 1rem; |
| 154 | + color: $grey-color-dark; |
| 155 | + margin: 8px 0 0; |
| 156 | + } |
| 157 | +} |
| 158 | + |
| 159 | +// --- "See all" pill button ------------------------------------------------- |
| 160 | +.see-all-link { |
| 161 | + display: inline-block; |
| 162 | + margin-top: $spacing-unit * 0.6; |
| 163 | + padding: 11px 24px; |
| 164 | + background: $brand-color; |
| 165 | + color: #ffffff !important; |
| 166 | + font-weight: 600; |
| 167 | + border-radius: 999px; |
| 168 | + transition: background 0.15s ease, transform 0.15s ease; |
| 169 | + |
| 170 | + &:hover { |
| 171 | + background: $accent-dark; |
| 172 | + text-decoration: none; |
| 173 | + transform: translateY(-1px); |
| 174 | + } |
| 175 | +} |
| 176 | + |
| 177 | +// --- Blockquotes ----------------------------------------------------------- |
| 178 | +blockquote { |
| 179 | + border-left: 4px solid $brand-color; |
| 180 | + color: $grey-color-dark; |
| 181 | + font-style: italic; |
| 182 | + background: rgba($brand-color, 0.04); |
| 183 | + padding: 10px 18px; |
| 184 | + border-radius: 0 10px 10px 0; |
| 185 | +} |
| 186 | + |
| 187 | +// --- Footer ---------------------------------------------------------------- |
| 188 | +.site-footer { |
| 189 | + border-top: 3px solid $brand-color; |
| 190 | + background: #ffffff; |
| 191 | +} |
| 192 | +.footer-heading { font-weight: 700; } |
| 193 | +.site-footer a { color: $brand-color; } |
| 194 | +.social-media-list .svg-icon { fill: $grey-color; } |
| 195 | + |
| 196 | +// --- Breathing room around main content ------------------------------------ |
| 197 | +.page-content { padding: ($spacing-unit * 1.2) 0; } |
0 commit comments