atproto-embed 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,318 @@
1
+ @import url('https://fonts.googleapis.com/css2?family=Google+Sans+Flex:opsz,wght@6..144,1..1000&display=swap');
2
+
3
+ :host {
4
+ /* Neutral palette */
5
+ --neutral-0: #ffffff;
6
+ --neutral-1: #f8f9fa;
7
+ --neutral-2: #f1f3f5;
8
+ --neutral-3: #e9ecef;
9
+ --neutral-4: #dee2e6;
10
+ --neutral-5: #ced4da;
11
+ --neutral-6: #adb5bd;
12
+ --neutral-7: #6a7178;
13
+ --neutral-8: #4f575e;
14
+ --neutral-9: #272b30;
15
+ --neutral-10: #101213;
16
+ --neutral-11: #000000;
17
+
18
+ /* Primary */
19
+ --primary-light: #f8f9ff;
20
+ --primary-base: #0a66f4;
21
+ --primary-hover: #20439b;
22
+ --primary-dark: #1c2855;
23
+
24
+ /* Type scale */
25
+ --font-displayLarge: 45px;
26
+ --font-displaymedium: 40px;
27
+ --font-displaySmall: 36px;
28
+ --font-heading1: 32px;
29
+ --font-heading2: 28px;
30
+ --font-heading3: 25px;
31
+ --font-heading4: 22px;
32
+ --font-heading5: 20px;
33
+ --font-heading6: 18px;
34
+ --font-subtitle: 16px;
35
+ --font-body: 14px;
36
+ --font-caption: 12px;
37
+ --font-label: 11px;
38
+ --font-tagline: 10px;
39
+ --font-sans: "Google Sans Flex", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
40
+ --transition: all 0.32s ease-in-out;
41
+
42
+ /* Inherit shared variables from root or use standard defaults */
43
+ --atproto-bg: var(--neutral-0, #ffffff);
44
+ --atproto-border-color: var(--neutral-3, #e9ecef);
45
+ --atproto-text-color: var(--neutral-10, #101213);
46
+ --atproto-muted-color: var(--neutral-7, #6a7178);
47
+ --atproto-accent-color: var(--primary-base, #0a66f4);
48
+ --atproto-radius: 12px;
49
+ --atproto-font-family: var(--font-sans, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif);
50
+ }
51
+
52
+ :host(.atproto-profile-host) {
53
+ display: block;
54
+ width: var(--atproto-width, 100%);
55
+ max-width: var(--atproto-max-width, none);
56
+ margin: 32px auto;
57
+ box-sizing: border-box;
58
+ font-family: var(--atproto-font-family);
59
+ color: var(--atproto-text-color);
60
+ }
61
+
62
+ .atproto-profile-inner {
63
+ margin: 0 auto;
64
+ box-sizing: border-box;
65
+ width: 100%;
66
+ }
67
+
68
+ /* Card Sizing */
69
+ .atproto-profile-card--size-full {
70
+ width: 100%;
71
+ }
72
+
73
+ .atproto-profile-card--size-md {
74
+ width: 100%;
75
+ max-width: 480px;
76
+ }
77
+
78
+ .atproto-profile-card--size-fit {
79
+ width: fit-content;
80
+ min-width: 0;
81
+ max-width: 100%;
82
+ }
83
+
84
+ /* Radius Variants (Removed) */
85
+
86
+
87
+ .atproto-profile--loading,
88
+ .atproto-profile--error {
89
+ padding: 18px;
90
+ border: 1px solid var(--atproto-border-color);
91
+ border-radius: var(--atproto-radius);
92
+ background: var(--atproto-bg);
93
+ color: var(--atproto-muted-color);
94
+ text-align: center;
95
+ font-size: var(--font-body, 14px);
96
+ }
97
+
98
+ .atproto-profile-card {
99
+ margin: 0 auto;
100
+ overflow: hidden;
101
+ background: var(--atproto-bg);
102
+ border: 1px solid var(--neutral-3);
103
+ border-radius: 20px;
104
+ box-shadow: 0 0 0 3px var(--neutral-1);
105
+ }
106
+
107
+ .atproto-profile__cover {
108
+ height: 140px;
109
+ background: #f1f3f5;
110
+ position: relative;
111
+ /* Sync with current card radius */
112
+ border-radius: inherit;
113
+ border-bottom-left-radius: 0;
114
+ border-bottom-right-radius: 0;
115
+ overflow: hidden;
116
+ }
117
+
118
+ .atproto-profile__cover img {
119
+ width: 100%;
120
+ height: 100%;
121
+ object-fit: cover;
122
+ display: block;
123
+ }
124
+
125
+ .atproto-profile__cover--empty {
126
+ background: linear-gradient(135deg, #f8f9fa, #e9ecef);
127
+ }
128
+
129
+ .atproto-profile__body {
130
+ padding: 16px 18px 18px;
131
+ position: relative;
132
+ }
133
+
134
+ .atproto-profile__header {
135
+ display: flex;
136
+ gap: 10px;
137
+ align-items: center;
138
+ min-width: 0;
139
+ }
140
+
141
+ .atproto-profile-card--no-cover .atproto-profile__header {
142
+ margin-top: 0;
143
+ }
144
+
145
+ .atproto-profile__avatar-wrap {
146
+ width: 40px;
147
+ height: 40px;
148
+ border-radius: 50%;
149
+ background: var(--atproto-profile-bg);
150
+ border: 1px solid var(--atproto-profile-bg);
151
+ flex-shrink: 0;
152
+ overflow: hidden;
153
+ }
154
+
155
+ .atproto-profile-card--no-cover .atproto-profile__avatar-wrap {
156
+ border: none;
157
+ box-shadow: none;
158
+ }
159
+
160
+ .atproto-profile__avatar {
161
+ width: 100%;
162
+ height: 100%;
163
+ object-fit: cover;
164
+ display: block;
165
+ }
166
+
167
+ .atproto-profile__identity {
168
+ display: flex;
169
+ flex-direction: column;
170
+ gap: 2px;
171
+ min-width: 0;
172
+ }
173
+
174
+ .atproto-profile__name-row {
175
+ display: flex;
176
+ align-items: center;
177
+ gap: 6px;
178
+ min-width: 0;
179
+ }
180
+
181
+ .atproto-profile__name {
182
+ font-size: var(--font-subtitle);
183
+ font-weight: 600;
184
+ color: var(--neutral-11);
185
+ overflow: hidden;
186
+ text-overflow: ellipsis;
187
+ white-space: nowrap;
188
+ min-width: 0;
189
+ flex: 0 1 auto;
190
+ max-width: 100%;
191
+ display: block;
192
+ }
193
+
194
+ .atproto-profile__badge {
195
+ width: 16px;
196
+ height: 16px;
197
+ flex: 0 0 auto;
198
+ }
199
+
200
+ .atproto-profile__handle {
201
+ font-size: var(--font-body);
202
+ color: var(--atproto-muted-color);
203
+ overflow: hidden;
204
+ text-overflow: ellipsis;
205
+ white-space: nowrap;
206
+ min-width: 0;
207
+ max-width: 100%;
208
+ display: block;
209
+ }
210
+
211
+ .atproto-profile__description {
212
+ margin-top: 12px;
213
+ font-size: var(--font-body);
214
+ line-height: 1.5;
215
+ color: var(--atproto-text-color);
216
+ white-space: pre-wrap;
217
+ word-break: break-all;
218
+ }
219
+
220
+ .atproto-profile__paragraph:not(:last-child) {
221
+ margin-bottom: 8px;
222
+ }
223
+
224
+ .atproto-profile__link {
225
+ color: var(--primary-base);
226
+ font-weight: 500;
227
+ text-decoration: none;
228
+ text-underline-offset: 2px;
229
+ }
230
+
231
+ .atproto-profile__link:hover {
232
+ text-decoration: underline;
233
+ text-decoration-thickness: 2px;
234
+ }
235
+
236
+ .atproto-profile__metrics {
237
+ display: flex;
238
+ flex-wrap: wrap;
239
+ gap: 12px 24px;
240
+ margin-top: 16px;
241
+ }
242
+
243
+ .atproto-profile__metric {
244
+ display: flex;
245
+ gap: 4px;
246
+ min-width: 80px;
247
+ }
248
+
249
+ .atproto-profile__metric-count {
250
+ font-size: var(--font-caption);
251
+ font-weight: 600;
252
+ color: var(--atproto-text-color);
253
+ }
254
+
255
+ .atproto-profile__metric-label {
256
+ font-size: var(--font-caption);
257
+ color: var(--neutral-8);
258
+ }
259
+
260
+ /* Actions */
261
+ .atproto-profile__actions {
262
+ display: flex;
263
+ flex-wrap: wrap;
264
+ gap: 10px;
265
+ margin-top: 16px;
266
+ }
267
+
268
+ .atproto-profile__btn {
269
+ flex: 1;
270
+ display: inline-flex;
271
+ align-items: center;
272
+ justify-content: center;
273
+ padding: 10px 16px;
274
+ border-radius: 100px;
275
+ font-size: var(--font-body, 14px);
276
+ font-weight: 600;
277
+ text-decoration: none;
278
+ transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
279
+ white-space: nowrap;
280
+ }
281
+
282
+ .atproto-profile__btn:hover {}
283
+
284
+ .atproto-profile__btn--primary {
285
+ background: var(--primary-base);
286
+ color: #ffffff;
287
+ border: 1px solid var(--primary-base);
288
+ }
289
+
290
+ .atproto-profile__btn--primary:hover {
291
+ background: var(--primary-hover);
292
+ border-color: var(--primary-hover);
293
+ }
294
+
295
+ .atproto-profile__btn--secondary {
296
+ background: transparent;
297
+ color: var(--neutral-11);
298
+ border: 1px solid var(--neutral-2);
299
+ }
300
+
301
+ .atproto-profile__btn--secondary:hover {
302
+ background: var(--neutral-2);
303
+ border-color: var(--neutral-3);
304
+ }
305
+
306
+ @media (max-width: 540px) {
307
+ .atproto-profile__actions {
308
+ flex-direction: column;
309
+ }
310
+
311
+ .atproto-profile__header {
312
+ align-items: flex-start;
313
+ }
314
+
315
+ .atproto-profile__body {
316
+ padding: 14px 14px 16px;
317
+ }
318
+ }