grain.social is a photo sharing platform built on atproto.
1@import "tailwindcss"; 2 3/* use to test light mode */ 4/* @custom-variant dark (&:where(.dark, .dark *)); */ 5 6@font-face { 7 font-family: "Jersey 20"; 8 src: url("/build/fonts/Jersey20-Regular.ttf") format("truetype"); 9 font-weight: normal; 10 font-style: normal; 11 font-display: swap; 12} 13 14:root { 15 --focus-ring-light: var(--color-zinc-200); 16 --focus-ring-dark: var(--color-zinc-500); 17 --btn-border-radius: var(--radius-sm); 18 --input-border-radius: var(--radius-sm); 19} 20 21@layer base { 22 :focus-visible { 23 outline: none; 24 box-shadow: 0 0 0 2px var(--focus-ring-light); 25 border-radius: var(--radius-sm); 26 } 27} 28 29@media (prefers-color-scheme: dark) { 30 :focus-visible { 31 box-shadow: 0 0 0 2px var(--focus-ring-dark); 32 } 33} 34 35@layer components { 36 .grain-label { 37 display: block; 38 margin-bottom: --spacing(2); 39 } 40 41 .grain-input { 42 border: 1px solid var(--color-zinc-100); 43 padding-inline: --spacing(3); 44 padding-block: --spacing(2); 45 width: 100%; 46 background-color: var(--color-zinc-100); 47 color: var(--color-zinc-900); 48 font-size: var(--font-size-base); 49 line-height: var(--line-height-normal); 50 border-radius: var(--input-border-radius); 51 box-shadow: none; 52 outline: none; 53 } 54 55 .grain-input::placeholder { 56 color: var(--color-zinc-400); 57 } 58 59 .grain-input:disabled { 60 background-color: var(--color-zinc-100); 61 cursor: not-allowed; 62 opacity: 0.7; 63 } 64 65 .grain-input.grain-input-error { 66 border-color: var(--color-red-500); 67 } 68 69 @media (prefers-color-scheme: dark) { 70 .grain-input { 71 background-color: var(--color-zinc-800); 72 color: var(--color-zinc-50); 73 border-color: var(--color-zinc-800); 74 } 75 } 76 77 .grain-btn { 78 display: inline-block; 79 padding-inline: --spacing(3); 80 padding-block: --spacing(1.5); 81 font-size: var(--font-size-base); 82 font-weight: 500; 83 line-height: var(--line-height-normal); 84 text-align: center; 85 cursor: pointer; 86 border-radius: var(--btn-border-radius); 87 box-shadow: none; 88 outline: none; 89 90 &.grain-btn-primary { 91 background-color: var(--color-sky-500); 92 color: var(--color-white); 93 border: 1px solid var(--color-sky-500); 94 } 95 96 &.grain-btn-secondary { 97 background-color: var(--color-zinc-100); 98 color: var(--color-zinc-800); 99 border: 1px solid var(--color-zinc-100); 100 } 101 102 @media (prefers-color-scheme: dark) { 103 &.grain-btn-secondary { 104 background-color: var(--color-zinc-800); 105 color: var(--color-zinc-100); 106 border: 1px solid var(--color-zinc-800); 107 } 108 } 109 110 &.grain-btn-ghost { 111 background-color: transparent; 112 border: 1px solid transparent; 113 } 114 115 &.grain-btn-destructive { 116 background-color: var(--color-red-500); 117 color: var(--color-white); 118 border: 1px solid var(--color-red-500); 119 } 120 121 &.grain-btn-tab { 122 display: flex; 123 align-items: center; 124 justify-content: center; 125 min-width: 120px; 126 padding-inline: --spacing(3); 127 padding-block: --spacing(2); 128 cursor: pointer; 129 font-weight: var(--font-weight-semibold); 130 text-align: center; 131 132 &[aria-selected="true"] { 133 background-color: var(--color-zinc-100); 134 font-weight: 600; 135 } 136 137 @media (prefers-color-scheme: dark) { 138 &[aria-selected="true"] { 139 background-color: var(--color-zinc-800); 140 } 141 } 142 } 143 } 144 145 .grain-input:focus-visible, 146 .grain-btn:focus-visible { 147 box-shadow: 0 0 0 2px var(--focus-ring-light); 148 } 149 150 @media (prefers-color-scheme: dark) { 151 .grain-input:focus-visible, 152 .grain-btn:focus-visible { 153 box-shadow: 0 0 0 2px var(--focus-ring-dark); 154 } 155 } 156 157 body[data-scroll-locked] { 158 overflow: hidden !important; 159 overscroll-behavior: contain; 160 position: relative !important; 161 padding-left: 0px; 162 padding-top: 0px; 163 padding-right: 0px; 164 margin-left: 0; 165 margin-top: 0; 166 margin-right: 0px !important; 167 } 168 169 .grain-scroll-area { 170 overflow-y: auto; 171 scrollbar-gutter: stable; 172 scrollbar-width: thin; /* Firefox */ 173 } 174 175 .grain-scroll-area::-webkit-scrollbar { 176 width: 8px; /* Chrome/Safari */ 177 } 178 179 .grain-scroll-area::-webkit-scrollbar-thumb { 180 background: rgba(100, 100, 100, 0.4); 181 border-radius: 4px; 182 } 183}