tangled
alpha
login
or
join now
leaflet.pub
/
leaflet
297
fork
atom
a tool for shared writing and social publishing
297
fork
atom
overview
issues
31
pulls
pipelines
rename container to frosted container
cozylittle.house
1 week ago
e88b4388
3538e97b
+89
-49
12 changed files
expand all
collapse all
unified
split
app
(home-pages)
notifications
NotificationList.tsx
reader
GlobalContent.tsx
InboxContent.tsx
NewContent.tsx
[leaflet_id]
publish
PublishPost.tsx
globals.css
lish
[did]
[publication]
dashboard
PublishedPostsLists.tsx
settings
PostSettings.tsx
SettingsContent.tsx
subscribeSuccess
page.tsx
createPub
page.tsx
components
ActionBar
Sidebar.tsx
+1
-1
app/(home-pages)/notifications/NotificationList.tsx
reviewed
···
30
30
31
31
if (notifications.length === 0)
32
32
return (
33
33
-
<div className="w-full text-sm flex flex-col gap-1 container italic text-tertiary text-center sm:p-4 p-3">
33
33
+
<div className="w-full text-sm flex flex-col gap-1 frosted-container italic text-tertiary text-center sm:p-4 p-3">
34
34
<div className="text-base font-bold">no notifications yet...</div>
35
35
Here, you'll find notifications about new follows, comments,
36
36
mentions, and replies!
+1
-1
app/(home-pages)/reader/GlobalContent.tsx
reviewed
···
34
34
35
35
if (posts.length === 0) {
36
36
return (
37
37
-
<div className="flex flex-col gap-2 container bg-[rgba(var(--bg-page),.7)] sm:p-4 p-3 justify-between text-center text-tertiary">
37
37
+
<div className="flex flex-col gap-2 frosted-container bg-[rgba(var(--bg-page),.7)] sm:p-4 p-3 justify-between text-center text-tertiary">
38
38
Nothing trending right now. Check back soon!
39
39
</div>
40
40
);
+1
-1
app/(home-pages)/reader/InboxContent.tsx
reviewed
···
109
109
110
110
export const ReaderEmpty = () => {
111
111
return (
112
112
-
<div className="flex flex-col gap-2 container bg-[rgba(var(--bg-page),.7)] sm:p-4 p-3 justify-between text-center text-tertiary">
112
112
+
<div className="flex flex-col gap-2 frosted-container bg-[rgba(var(--bg-page),.7)] sm:p-4 p-3 justify-between text-center text-tertiary">
113
113
Nothing to read yet… <br />
114
114
Subscribe to publications and find their posts here!
115
115
<Link href={"/reader/hot"}>
+1
-1
app/(home-pages)/reader/NewContent.tsx
reviewed
···
66
66
67
67
if (allPosts.length === 0) {
68
68
return (
69
69
-
<div className="flex flex-col gap-2 container bg-[rgba(var(--bg-page),.7)] sm:p-4 p-3 justify-between text-center text-tertiary">
69
69
+
<div className="flex flex-col gap-2 frosted-container bg-[rgba(var(--bg-page),.7)] sm:p-4 p-3 justify-between text-center text-tertiary">
70
70
No posts yet. Check back soon!
71
71
</div>
72
72
);
+2
-2
app/[leaflet_id]/publish/PublishPost.tsx
reviewed
···
180
180
submit();
181
181
}}
182
182
>
183
183
-
<div className="container flex flex-col gap-3 sm:p-3 p-4">
183
183
+
<div className="frosted-container flex flex-col gap-3 sm:p-3 p-4">
184
184
<PublishingTo
185
185
publication_uri={props.publication_uri}
186
186
record={props.record}
···
458
458
}) => {
459
459
let uri = props.publication_uri ? new AtUri(props.publication_uri) : null;
460
460
return (
461
461
-
<div className="container p-4 m-3 sm:m-4 flex flex-col gap-1 justify-center text-center w-fit h-fit mx-auto">
461
461
+
<div className="frosted-container p-4 m-3 sm:m-4 flex flex-col gap-1 justify-center text-center w-fit h-fit mx-auto">
462
462
<PublishIllustration posts_in_pub={props.posts_in_pub} />
463
463
<h2 className="pt-2">Published!</h2>
464
464
{uri && props.record ? (
+37
-10
app/globals.css
reviewed
···
215
215
.pageScrollWrapper h2,
216
216
.pageScrollWrapper h3,
217
217
.pageScrollWrapper h4 {
218
218
-
font-family: var(--theme-heading-font, var(--theme-font, var(--font-quattro)));
218
218
+
font-family: var(
219
219
+
--theme-heading-font,
220
220
+
var(--theme-font, var(--font-quattro))
221
221
+
);
219
222
}
220
223
221
224
/* Scale heading sizes relative to the custom base font size */
222
222
-
.pageScrollWrapper h1 { font-size: 2em; }
223
223
-
.pageScrollWrapper h2 { font-size: 1.625em; }
224
224
-
.pageScrollWrapper h3 { font-size: 1.125em; }
225
225
-
.pageScrollWrapper h4 { font-size: 1em; }
225
225
+
.pageScrollWrapper h1 {
226
226
+
font-size: 2em;
227
227
+
}
228
228
+
.pageScrollWrapper h2 {
229
229
+
font-size: 1.625em;
230
230
+
}
231
231
+
.pageScrollWrapper h3 {
232
232
+
font-size: 1.125em;
233
233
+
}
234
234
+
.pageScrollWrapper h4 {
235
235
+
font-size: 1em;
236
236
+
}
226
237
227
238
/* Scale text size classes relative to the custom base font size.
228
239
Tailwind's text-sm/text-base/text-lg compile to fixed rem values
229
240
which ignore the custom base size set on .pageScrollWrapper. */
230
230
-
.pageScrollWrapper .textSizeSmall { font-size: 0.875em; }
231
231
-
.pageScrollWrapper .textSizeLarge { font-size: 1.125em; }
241
241
+
.pageScrollWrapper .textSizeSmall {
242
242
+
font-size: 0.875em;
243
243
+
}
244
244
+
.pageScrollWrapper .textSizeLarge {
245
245
+
font-size: 1.125em;
246
246
+
}
232
247
233
248
.pageScrollWrapper pre {
234
249
font-family: var(--theme-font, var(--font-quattro));
···
243
258
.pubWrapper h2,
244
259
.pubWrapper h3,
245
260
.pubWrapper h4 {
246
246
-
font-family: var(--theme-heading-font, var(--theme-font, var(--font-quattro)));
261
261
+
font-family: var(
262
262
+
--theme-heading-font,
263
263
+
var(--theme-font, var(--font-quattro))
264
264
+
);
247
265
}
248
266
/*END FONT STYLING*/
249
267
···
446
464
@apply ml-2;
447
465
}
448
466
467
467
+
.container {
468
468
+
@apply border;
469
469
+
@apply border-border-light;
470
470
+
@apply rounded-md;
471
471
+
background: rgba(var(--bg-page), var(--bg-page-alpha));
472
472
+
}
473
473
+
449
474
.transparent-container {
450
475
@apply border;
451
476
@apply border-border-light;
452
477
@apply rounded-md;
453
478
}
454
479
455
455
-
.container {
480
480
+
.frosted-container {
456
481
background: rgba(var(--bg-page), 0.75);
457
482
@apply border;
458
483
@apply border-bg-page;
···
571
596
.footnote-side-item {
572
597
max-height: 4.5em;
573
598
overflow: hidden;
574
574
-
transition: max-height 200ms ease, mask-image 200ms ease;
599
599
+
transition:
600
600
+
max-height 200ms ease,
601
601
+
mask-image 200ms ease;
575
602
}
576
603
.footnote-side-item.has-overflow {
577
604
mask-image: linear-gradient(to bottom, white 50%, transparent 100%);
+6
-7
app/lish/[did]/[publication]/dashboard/PublishedPostsLists.tsx
reviewed
···
9
9
} from "./PublicationSWRProvider";
10
10
import { Fragment } from "react";
11
11
import { useParams } from "next/navigation";
12
12
-
import { getPublicationURL, getDocumentURL } from "app/lish/createPub/getPublicationURL";
12
12
+
import {
13
13
+
getPublicationURL,
14
14
+
getDocumentURL,
15
15
+
} from "app/lish/createPub/getPublicationURL";
13
16
import { SpeedyLink } from "components/SpeedyLink";
14
17
import { InteractionPreview } from "components/InteractionsPreview";
15
18
import { useLocalizedDate } from "src/hooks/useLocalizedDate";
···
27
30
if (!publication) return null;
28
31
if (!documents || documents.length === 0)
29
32
return (
30
30
-
<div className="italic text-tertiary w-full container text-center place-items-center flex flex-col gap-3 p-3">
33
33
+
<div className="italic text-tertiary w-full frosted-container text-center place-items-center flex flex-col gap-3 p-3">
31
34
Nothing's been published yet...
32
35
</div>
33
36
);
···
85
88
}}
86
89
>
87
90
<div className="flex justify-between gap-2">
88
88
-
<a
89
89
-
className="hover:no-underline!"
90
90
-
target="_blank"
91
91
-
href={docUrl}
92
92
-
>
91
91
+
<a className="hover:no-underline!" target="_blank" href={docUrl}>
93
92
<h3 className="text-primary grow leading-snug">
94
93
{doc.record.title}
95
94
</h3>
+22
-23
app/lish/[did]/[publication]/dashboard/settings/PostSettings.tsx
reviewed
···
13
13
setShowInDiscover: (v: boolean) => void;
14
14
}) {
15
15
return (
16
16
-
<section className="flex flex-col gap-3">
17
17
-
<h3 className="font-bold text-primary">Post Settings</h3>
18
18
-
19
19
-
<h4 className="mb-0">Discovery</h4>
20
20
-
<Toggle
21
21
-
toggle={props.showInDiscover}
22
22
-
onToggle={() => props.setShowInDiscover(!props.showInDiscover)}
23
23
-
>
24
24
-
<div className="flex flex-col justify-start">
25
25
-
<div className="font-bold">Make Public</div>
26
26
-
<div className="text-tertiary text-sm leading-tight">
27
27
-
Your posts will appear in{" "}
28
28
-
<a href="/reader" target="_blank">
29
29
-
Leaflet Reader
30
30
-
</a>{" "}
31
31
-
and show up in search and tags.
16
16
+
<>
17
17
+
<div className="flex flex-col gap-3">
18
18
+
<h3 className="mb-0">Discovery</h3>
19
19
+
<Toggle
20
20
+
toggle={props.showInDiscover}
21
21
+
onToggle={() => props.setShowInDiscover(!props.showInDiscover)}
22
22
+
>
23
23
+
<div className="flex flex-col justify-start">
24
24
+
<div className="font-bold">Make Public</div>
25
25
+
<div className="text-tertiary text-sm leading-tight">
26
26
+
Your posts will appear in{" "}
27
27
+
<a href="/reader" target="_blank">
28
28
+
Leaflet Reader
29
29
+
</a>{" "}
30
30
+
and show up in search and tags.
31
31
+
</div>
32
32
</div>
33
33
-
</div>
34
34
-
</Toggle>
35
35
-
33
33
+
</Toggle>
34
34
+
</div>
36
35
<hr className="border-border-light" />
37
36
38
38
-
<h4 className="mb-0">Layout</h4>
37
37
+
<h3 className="mb-0">Post Layout</h3>
39
38
<Toggle
40
39
toggle={props.showPrevNext}
41
40
onToggle={() => props.setShowPrevNext(!props.showPrevNext)}
42
41
>
43
43
-
<div className="font-bold">Show Prev/Next Buttons</div>
42
42
+
<div className="font-bold">Show Prev/Next Buttons on Post</div>
44
43
</Toggle>
45
44
46
45
<hr className="border-border-light" />
47
46
48
48
-
<h4 className="mb-0">Interactions</h4>
47
47
+
<h3 className="mb-0">Post Interactions</h3>
49
48
<div className="flex flex-col gap-2">
50
49
<Toggle
51
50
toggle={props.showComments}
···
78
77
</div>
79
78
</Toggle>
80
79
</div>
81
81
-
</section>
80
80
+
</>
82
81
);
83
82
}
+15
app/lish/[did]/[publication]/dashboard/settings/SettingsContent.tsx
reviewed
···
15
15
import { GeneralSettings } from "./GeneralSettings";
16
16
import { PostSettings } from "./PostSettings";
17
17
import { ThemeSettings } from "./ThemeSettings";
18
18
+
import { useCardBorderHidden } from "components/Pages/useCardBorderHidden";
18
19
19
20
type SettingsView = "all" | "theme";
20
21
···
164
165
</form>
165
166
);
166
167
}
168
168
+
169
169
+
export const DashboardContainer = (props: {
170
170
+
children: React.ReactNode;
171
171
+
className?: string;
172
172
+
}) => {
173
173
+
let cardBorderHidden = useCardBorderHidden();
174
174
+
return (
175
175
+
<div
176
176
+
className={`flex flex-col ${cardBorderHidden ? "con" : "bg-transparent"}`}
177
177
+
>
178
178
+
{props.children}
179
179
+
</div>
180
180
+
);
181
181
+
};
+1
-1
app/lish/[did]/[publication]/subscribeSuccess/page.tsx
reviewed
···
4
4
export default function SubscribeSuccess() {
5
5
return (
6
6
<div className="h-full w-screen bg-bg-leaflet flex place-items-center text-center ">
7
7
-
<div className="container p-4 max-w-md mx-auto justify-center place-items-center flex flex-col gap-2">
7
7
+
<div className="frosted-container p-4 max-w-md mx-auto justify-center place-items-center flex flex-col gap-2">
8
8
<h3 className="text-secondary">You've Subscribed!</h3>
9
9
<div className="text-tertiary">
10
10
Add this custom feed to your Bluesky to get the updates from this and
+1
-1
app/lish/createPub/page.tsx
reviewed
···
9
9
return (
10
10
<div className="createPubPage relative w-full h-full flex items-stretch bg-bg-leaflet p-4">
11
11
<div className="createPubContent h-full flex items-center max-w-sm w-full mx-auto">
12
12
-
<div className="container w-full p-3 justify-items-center text-center">
12
12
+
<div className="frosted-container w-full p-3 justify-items-center text-center">
13
13
<LoginForm
14
14
text="Log in to create a publication!"
15
15
noEmail
+1
-1
components/ActionBar/Sidebar.tsx
reviewed
···
30
30
${!props.alwaysOpen ? "absolute top-0 left-0 z-10 w-max" : "w-[192px] max-w-[192px]"}
31
31
h-fit p-[6px]
32
32
flex flex-col gap-1 justify-start border
33
33
-
rounded-md bg-bg-page ${open && !props.alwaysOpen ? "border-border-light" : "container"}
33
33
+
rounded-md bg-bg-page ${open && !props.alwaysOpen ? "border-border-light" : "frosted-container"}
34
34
${props.className}
35
35
`}
36
36
onMouseOver={() => {