Scratch space for learning atproto app development
1body {
2 font-family: Arial, Helvetica, sans-serif;
3
4 --border-color: #ddd;
5 --gray-100: #fafafa;
6 --gray-500: #666;
7 --gray-700: #333;
8 --primary-400:#2e8fff;
9 --primary-500: #0078ff;
10 --primary-600: #0066db;
11 --error-500: #f00;
12 --error-100: #fee;
13}
14
15/*
16 Josh's Custom CSS Reset
17 https://www.joshwcomeau.com/css/custom-css-reset/
18*/
19*, *::before, *::after {
20 box-sizing: border-box;
21}
22* {
23 margin: 0;
24}
25body {
26 line-height: 1.5;
27 -webkit-font-smoothing: antialiased;
28}
29img, picture, video, canvas, svg {
30 display: block;
31 max-width: 100%;
32}
33input, button, textarea, select {
34 font: inherit;
35}
36p, h1, h2, h3, h4, h5, h6 {
37 overflow-wrap: break-word;
38}
39#root, #__next {
40 isolation: isolate;
41}
42
43/*
44 Common components
45*/
46button, .button {
47 display: inline-block;
48 border: 0;
49 background-color: var(--primary-500);
50 border-radius: 50px;
51 color: #fff;
52 padding: 2px 10px;
53 cursor: pointer;
54 text-decoration: none;
55}
56button:hover, .button:hover {
57 background: var(--primary-400);
58}
59
60/*
61 Custom components
62*/
63.error {
64 background-color: var(--error-100);
65 color: var(--error-500);
66 text-align: center;
67 padding: 1rem;
68 display: none;
69}
70.error.visible {
71 display: block;
72}
73
74#header {
75 background-color: #fff;
76 text-align: center;
77 padding: 0.5rem 0 1.5rem;
78}
79
80#header h1 {
81 font-size: 5rem;
82}
83
84.container {
85 display: flex;
86 flex-direction: column;
87 gap: 4px;
88 margin: 0 auto;
89 max-width: 600px;
90 padding: 20px;
91}
92
93.card {
94 /* border: 1px solid var(--border-color); */
95 border-radius: 6px;
96 padding: 10px 16px;
97 background-color: #fff;
98}
99.card > :first-child {
100 margin-top: 0;
101}
102.card > :last-child {
103 margin-bottom: 0;
104}
105
106.session-form {
107 display: flex;
108 flex-direction: row;
109 align-items: center;
110 justify-content: space-between;
111}
112
113.login-form {
114 display: flex;
115 flex-direction: row;
116 gap: 6px;
117 border: 1px solid var(--border-color);
118 border-radius: 6px;
119 padding: 10px 16px;
120 background-color: #fff;
121}
122
123.login-form input {
124 flex: 1;
125 border: 0;
126}
127
128.status-options {
129 display: flex;
130 flex-direction: row;
131 flex-wrap: wrap;
132 gap: 8px;
133 margin: 10px 0;
134}
135
136.status-option {
137 font-size: 2rem;
138 width: 3rem;
139 height: 3rem;
140 background-color: #fff;
141 border: 1px solid var(--border-color);
142 border-radius: 3rem;
143 text-align: center;
144 box-shadow: 0 1px 4px #0001;
145 cursor: pointer;
146}
147
148.status-option:hover {
149 background-color: var(--gray-100);
150}
151
152.status-line {
153 display: flex;
154 flex-direction: row;
155 align-items: center;
156 gap: 10px;
157 position: relative;
158 margin-top: 15px;
159}
160
161.status-line:not(.no-line)::before {
162 content: '';
163 position: absolute;
164 width: 2px;
165 background-color: var(--border-color);
166 left: 1.45rem;
167 bottom: calc(100% + 2px);
168 height: 15px;
169}
170
171.status-line .status {
172 font-size: 2rem;
173 background-color: #fff;
174 width: 3rem;
175 height: 3rem;
176 border-radius: 1.5rem;
177 text-align: center;
178 border: 1px solid var(--border-color);
179}
180
181.status-line .desc {
182 color: var(--gray-500);
183}
184
185.status-line .author {
186 color: var(--gray-700);
187 font-weight: 600;
188 text-decoration: none;
189}
190
191.status-line .author:hover {
192 text-decoration: underline;
193}