Skip to content

Commit be6a476

Browse files
committed
Add the stripes
1 parent 60b6f36 commit be6a476

File tree

1 file changed

+73
-30
lines changed

1 file changed

+73
-30
lines changed

src/app/conf/2025/components/call-for-proposals.tsx

Lines changed: 73 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ function NotesTab() {
9898
return (
9999
<div className="bg-sec-light p-4">
100100
<h3 className="typography-h3">Important Notes</h3>
101-
<ul className="mt-2 list-disc space-y-2 pl-6">
101+
<ul className="mt-4 list-disc space-y-2 pl-6">
102102
<li>
103103
All speakers are required to adhere to our{" "}
104104
<Link
@@ -147,7 +147,7 @@ function NotesTab() {
147147
the best submission possible. To get started, here are three things that
148148
you should consider before submitting your proposal:
149149
</p>
150-
<ul className="mb-4 list-disc space-y-2 pl-6">
150+
<ul className="my-4 list-disc space-y-2 pl-6">
151151
<li>What are you hoping to get from your presentation?</li>
152152
<li>What do you expect the audience to gain from your presentation?</li>
153153
<li>How will your presentation help better the ecosystem?</li>
@@ -192,30 +192,28 @@ function NotesTab() {
192192

193193
function TypesTab() {
194194
return (
195-
<div className="md:p-8 lg:p-16">
196-
<dl className="divide-y divide-sec-dark border-neu-300 md:divide-neu-300 md:border md:shadow-[0px_0px_20px_0px_rgba(133,185,19,0.20)]">
197-
<DefinitionListItem
198-
term="Session Presentation"
199-
definition="Typically 30 minutes in length, 1-2 speakers presenting on a topic"
200-
/>
201-
<DefinitionListItem
202-
term="Panel Discussion"
203-
definition="Typically 30 minutes in length, 3-4 speakers presenting on a topic"
204-
/>
205-
<DefinitionListItem
206-
term="Birds of a Feather"
207-
definition="Typically 45 minutes to 1 hour in length"
208-
/>
209-
<DefinitionListItem
210-
term="Lightning Talk"
211-
definition="Typically 5-10 minutes in length"
212-
/>
213-
<DefinitionListItem
214-
term="Workshop"
215-
definition="Typically 1-2 hours in length"
216-
/>
217-
</dl>
218-
</div>
195+
<DefinitionListBox>
196+
<DefinitionListItem
197+
term="Session Presentation"
198+
definition="Typically 30 minutes in length, 1-2 speakers presenting on a topic"
199+
/>
200+
<DefinitionListItem
201+
term="Panel Discussion"
202+
definition="Typically 30 minutes in length, 3-4 speakers presenting on a topic"
203+
/>
204+
<DefinitionListItem
205+
term="Birds of a Feather"
206+
definition="Typically 45 minutes to 1 hour in length"
207+
/>
208+
<DefinitionListItem
209+
term="Lightning Talk"
210+
definition="Typically 5-10 minutes in length"
211+
/>
212+
<DefinitionListItem
213+
term="Workshop"
214+
definition="Typically 1-2 hours in length"
215+
/>
216+
</DefinitionListBox>
219217
)
220218
}
221219

@@ -326,7 +324,7 @@ export function CallForProposals() {
326324
className="gql-conf-section gql-conf-container dark:text-neu-0"
327325
>
328326
<div className="flex *:basis-1/2 max-md:flex-col">
329-
<div className="border-sec-dark bg-sec-light p-4 dark:border-sec-lighter md:border-r md:p-8 lg:p-16">
327+
<div className="border-sec-dark bg-sec-light p-4 md:border-r md:p-8 lg:p-16">
330328
<h1 className="typography-h2">Call for Proposals</h1>
331329
<p className="mt-6 md:mt-10">
332330
Putting on an amazing conference depends on great content, which is
@@ -387,7 +385,7 @@ export function CallForProposals() {
387385
/>
388386
))}
389387
</div>
390-
<div className="flex flex-1 justify-center max-md:flex-col md:items-center">
388+
<div className="flex flex-1 justify-center overflow-hidden max-md:flex-col md:items-center">
391389
{tabsInOrder.map(tab => (
392390
<>
393391
<TabButton
@@ -430,14 +428,18 @@ function TabButton({
430428
tabIndex,
431429
activeTab,
432430
setActiveTab,
431+
className,
433432
...props
434433
}: TabButtonProps) {
435434
return (
436435
<button
437436
key={tab}
438437
tabIndex={tabIndex}
439438
aria-selected={activeTab === tab}
440-
className="gql-focus-visible flex items-center justify-between px-3 py-4 typography-body-lg hover:bg-sec-light focus:outline-none max-md:border-b max-md:border-sec-dark max-md:first:border-t md:[--collapsible:1] md:aria-selected:bg-sec-light"
439+
className={clsx(
440+
"gql-focus-visible flex items-center justify-between px-3 py-4 typography-body-lg hover:bg-sec-light focus:outline-none max-md:border-b max-md:border-sec-dark max-md:first:border-t md:[--collapsible:1] md:aria-selected:bg-sec-light",
441+
className,
442+
)}
441443
onFocus={event => {
442444
console.log("focus")
443445
setActiveTab(tab)
@@ -467,10 +469,51 @@ function arrowsMoveSideways(event: React.KeyboardEvent<HTMLButtonElement>) {
467469

468470
function DefinitionListBox({ children }: { children: React.ReactNode }) {
469471
return (
470-
<div className="md:p-8 lg:p-16">
472+
<div className="relative isolate md:p-8 lg:p-16">
471473
<dl className="divide-y divide-sec-dark border-neu-300 md:divide-neu-300 md:border md:shadow-[0px_0px_20px_0px_rgba(133,185,19,0.20)]">
472474
{children}
473475
</dl>
476+
<Stripes />
477+
</div>
478+
)
479+
}
480+
481+
const maskEven =
482+
"repeating-linear-gradient(to right, transparent, transparent 12px, black 12px, black 24px)"
483+
const maskOdd =
484+
"repeating-linear-gradient(to right, black, black 12px, transparent 12px, transparent 24px)"
485+
486+
function Stripes() {
487+
const mask = "linear-gradient(125deg, transparent 68%, hsl(0 0 0 / 0.8))"
488+
return (
489+
<div
490+
role="presentation"
491+
className="pointer-events-none absolute inset-0 bottom-[-20px] -z-10 translate-x-0.5 translate-y-12 ease-linear max-md:hidden"
492+
style={{
493+
maskImage: mask,
494+
WebkitMaskImage: mask,
495+
}}
496+
>
497+
<div
498+
className="absolute inset-0"
499+
style={{
500+
maskImage: maskOdd,
501+
WebkitMaskImage: maskOdd,
502+
maskPosition: "right",
503+
backgroundImage:
504+
"linear-gradient(0deg, hsl(var(--color-sec-lighter)) 0%, rgba(133, 185, 19, 0.00) 100%)",
505+
}}
506+
/>
507+
<div
508+
className="absolute inset-0"
509+
style={{
510+
maskImage: maskEven,
511+
WebkitMaskImage: maskEven,
512+
maskPosition: "right",
513+
backgroundImage:
514+
"linear-gradient(0deg, hsl(var(--color-sec-dark)) 0%, hsl(var(--color-sec-base)) 100%)",
515+
}}
516+
/>
474517
</div>
475518
)
476519
}

0 commit comments

Comments
 (0)