Follow and Share Lens profiles https://lens.orbiter.website/
at main 281 lines 5.1 kB view raw
1@layer base, utils, components; 2 3/* Import the base stylesheet */ 4@import "@webtui/css/base.css"; 5 6/* Utils */ 7@import "@webtui/css/utils/box.css"; 8 9/* Components */ 10@import "@webtui/css/components/button.css"; 11@import "@webtui/css/components/typography.css"; 12@import "@webtui/css/components/badge.css"; 13 14/* Catppuccin Theme */ 15@import "@webtui/theme-catppuccin"; 16 17/* Custom theme overrides for pixel/gameboy style */ 18@layer base { 19 :root { 20 --font-size: 14px; 21 --line-height: 1.5; 22 --font-family: 'Press Start 2P', monospace; 23 --font-weight-bold: 700; 24 --font-weight-normal: 400; 25 26 /* Box customization */ 27 --box-border-color: var(--green); 28 --box-border-width: 3px; 29 --box-rounded-radius: 0px; 30 31 /* Pixel style variables */ 32 --pixel-border: 4px; 33 --pixel-shadow: 5px 5px 0px rgba(0, 0, 0, 0.2); 34 35 /* Gameboy screen colors */ 36 --gameboy-bg: var(--crust); 37 --gameboy-fg: var(--green); 38 --gameboy-accent: var(--teal); 39 --gameboy-button: var(--mauve); 40 --gameboy-button-hover: var(--pink); 41 42 /* Gameboy dimensions */ 43 --gameboy-width: 480px; 44 --gameboy-screen-padding: 1.25rem; 45 } 46} 47 48html { 49 font-family: 'Press Start 2P', monospace; 50} 51 52body { 53 margin: 0; 54 display: flex; 55 align-items: center; 56 justify-content: center; 57 min-width: 320px; 58 min-height: 100vh; 59 background-color: var(--gameboy-bg); 60 color: var(--text); 61 padding: 1rem; 62} 63 64#app { 65 width: 100%; 66 max-width: var(--gameboy-width); 67 min-height: auto; 68 margin: 0 auto; 69 padding: var(--gameboy-screen-padding); 70 text-align: center; 71 background-color: var(--mantle); 72 border: var(--pixel-border) solid var(--green); 73 box-shadow: 0 0 0 8px var(--surface0), var(--pixel-shadow); 74 overflow: auto; 75} 76 77/* Pixel-styled containers using box utility */ 78.pixel-container { 79 padding: 1rem; 80 margin-bottom: 1.5rem; 81 --box-border-color: var(--green); 82} 83 84/* Make the last container have no bottom margin */ 85.pixel-container:last-child { 86 margin-bottom: 0; 87} 88 89/* Title styles */ 90h1 { 91 color: var(--mauve); 92 margin-bottom: 1rem; 93 font-size: 1.4rem; 94 text-shadow: 2px 2px 0px rgba(0, 0, 0, 0.3); 95} 96 97h2 { 98 color: var(--blue); 99 margin-bottom: 0.75rem; 100 font-size: 1rem; 101} 102 103p { 104 color: var(--text); 105 font-size: 0.8rem; 106} 107 108/* Pixel style buttons */ 109button.pixel-btn { 110 background-color: var(--surface0); 111 border: var(--pixel-border) solid var(--mauve); 112 border-radius: 0; 113 padding: 0.75rem 1.25rem; 114 font-family: inherit; 115 font-size: 0.8rem; 116 text-transform: uppercase; 117 cursor: pointer; 118 box-shadow: var(--pixel-shadow); 119 transition: transform 0.1s, box-shadow 0.1s; 120 margin-bottom: 0.5rem; 121 position: relative; 122 color: var(--text); 123} 124 125button.pixel-btn:hover { 126 background-color: var(--blue); 127 color: var(--crust); 128 border-color: var(--lavender); 129} 130 131button.pixel-btn:active { 132 transform: translate(3px, 3px); 133 box-shadow: 2px 2px 0px rgba(0, 0, 0, 0.2); 134} 135 136button.pixel-btn:disabled { 137 opacity: 0.6; 138 cursor: not-allowed; 139} 140 141/* Button hover animation */ 142button.pixel-btn::after { 143 content: ''; 144 position: absolute; 145 top: 0; 146 left: 0; 147 width: 100%; 148 height: 100%; 149 background: linear-gradient(45deg, 150 transparent 0%, 151 rgba(255, 255, 255, 0.1) 50%, 152 transparent 100%); 153 opacity: 0; 154 transition: opacity 0.3s; 155} 156 157button.pixel-btn:hover::after { 158 opacity: 1; 159} 160 161/* Custom form elements */ 162.input-field { 163 width: 100%; 164 padding: 0.75rem; 165 font-family: inherit; 166 background-color: var(--surface0); 167 color: var(--text); 168 border: var(--pixel-border) solid var(--surface2); 169 border-radius: 0; 170 box-sizing: border-box; 171 margin-bottom: 0.5rem; 172 font-size: 0.8rem; 173} 174 175.input-field:focus { 176 outline: none; 177 border-color: var(--blue); 178 box-shadow: 0 0 0 2px var(--blue); 179} 180 181.input-field.error { 182 border-color: var(--red); 183} 184 185/* Error styling */ 186.error-text { 187 color: var(--red); 188 font-size: 0.7rem; 189 margin-top: 0.25rem; 190} 191 192/* Utility classes */ 193.form-group { 194 margin-bottom: 1rem; 195 text-align: left; 196} 197 198.follow-buttons { 199 display: flex; 200 flex-direction: column; 201 gap: 0.5rem; 202 margin-top: 1rem; 203} 204 205.share-url { 206 margin-top: 1rem; 207} 208 209label { 210 color: var(--text); 211 font-weight: bold; 212 display: block; 213 margin-bottom: 0.5rem; 214 font-size: 0.8rem; 215} 216 217.mb-2 { 218 margin-bottom: 0.5rem; 219} 220 221.block { 222 display: block; 223} 224 225/* Footer styling */ 226.footer { 227 margin-top: 2rem; 228 margin-bottom: 0; 229} 230 231.footer-links { 232 display: flex; 233 justify-content: center; 234 gap: 1rem; 235} 236 237.footer-link { 238 text-decoration: none; 239} 240 241.footer-btn { 242 background-color: var(--surface1); 243 border-color: var(--peach); 244} 245 246.footer-btn:hover { 247 background-color: var(--peach); 248 color: var(--crust); 249 border-color: var(--yellow); 250} 251 252/* Mobile optimization */ 253@media (max-width: 768px) { 254 :root { 255 --gameboy-width: 100%; 256 } 257 258 #app { 259 padding: 0.75rem; 260 max-width: none; 261 box-shadow: none; 262 border: none; 263 } 264 265 button.pixel-btn { 266 width: 100%; 267 } 268 269 h1 { 270 font-size: 1.2rem; 271 } 272 273 h2 { 274 font-size: 0.9rem; 275 } 276 277 .footer-links { 278 flex-direction: column; 279 gap: 0.5rem; 280 } 281}