-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Homepage redesign #13528
Merged
Merged
Homepage redesign #13528
Changes from 250 commits
Commits
Show all changes
292 commits
Select commit
Hold shift + click to select a range
25d3a56
style: add focus animation to SvgButtonLink
wackerow 3efa41c
feat: implement calendar data
wackerow 9947bbe
feat: Event fallback image, see all button
wackerow df69cc2
theme: add "lg" button size
wackerow 40bf4b7
refactor: use button size "lg" on homepage
wackerow 9a750cc
feat: add Join ethereum.org section
wackerow 80ee005
build: yarn add -D xml2js @types/xml2js
wackerow fddb3dd
feat: add fetchRSSDisplay with types/constants
wackerow 4af341d
init: RSS feed for homepage
wackerow 9d224e9
theme: add sec/tert/quat color arrays
wackerow 6bff04a
init: homepage bento box template
wackerow 580570b
refactor: colors.css for foundational palettes
wackerow 7a2a140
refactor: semantic-tokens.css for css theme tokens
wackerow 16d0d6c
refactor: rm extracted colors/tokens, use import
wackerow fd2da24
refactor: tailwind color tokens
wackerow c4ea9cf
deprecate: switchBackground
wackerow a4768c6
feat: add `banner` gradient token
wackerow 00728a8
refactor: fetchRSS
wackerow afdc668
create: rss helper functions
wackerow 8acc906
chore: update constants, types, assets
wackerow 559895e
refactor: use fetchRSS with helpers, switch HomeSection to h3
wackerow 0a30d5b
Merge branch 'homepage-rss-branch' into homepage
wackerow abedbfc
feat: add Attestant blog for rss feeds
wackerow 9923d73
feat: activate attestant blog, cache rss results
wackerow 5dceb8d
fix: event fallback image
wackerow 85a1084
Merge branch 'homepage-rss-branch' into homepage
wackerow 9803d23
feat: add accent gradients
wackerow 7cc230a
refactor: gradient-main naming, linting
wackerow 2f8f944
refactor: upgrade css tokens to flexible pattern
wackerow d6bdad0
update: theming tokens
wackerow 484ef2e
feat: extract BentoBox component
wackerow 977f715
refactor: use BentoBox component, extract data
wackerow 349f310
chore: add image assets
wackerow e97a311
feat: pure black bg in dark mode
wackerow bfb97b5
refactor: update color theme tokens and colors
wackerow 2c93b06
refactor: upgrade all tokens to rgba format
wackerow 0456e5f
revert: borderColor tokens
wackerow f33b098
update: BentoBox, add optional imgWidth prop
wackerow 89e5964
update: BentoBox for desktop homepage
wackerow 667e017
layout: BentoBox responsive design
wackerow f5e0e30
theme: update tailwind breakpoints
wackerow a67f002
fix: wrap R.G,B values in rgba()
wackerow a35a239
feat: add bg-gradient-hero to HomeHero
wackerow f57d5f1
update: SvgButtonLink hover/focus style
wackerow 9325cb5
chore: add primary-action token
wackerow aae4293
refactor: mv global font import to global.css
wackerow c460cec
config: use `class` attribute for tracking theme
wackerow 789b1e6
chore: rm unnecessary tokens
wackerow 0e66abb
refactor: extract Box and Title components
wackerow 9bb0015
refactor: extract BentoBoxes component
wackerow bbf02b8
refactor: H,S%,L% color formatting
wackerow 8940479
config: use `.dark` class for theme setup
wackerow 17d1856
fix: breakpoint usage
wackerow 7b5abb5
update: Box to accept imgHeight?
wackerow 615ffd5
init: simple mobile stacking design
wackerow 35adbf3
fix: twitter icon
wackerow af06be7
config: yarn add swiper
wackerow 3d62c6a
fix: bento boxes styling
wackerow ba99d53
feat: implement mobile swiper
wackerow 7309f32
fix: add handling for invalid pubDates
wackerow 505cb13
Merge branch 'dev' into homepage
wackerow 96f2cbc
patch: merge amendments
wackerow 2b26f12
refactor: use dark class for color mode management
wackerow 0942da2
fix: sync color themes with system
wackerow d9e6b2b
Merge branch 'dev' into homepage
wackerow 741acdc
Merge branch 'dark-class' into homepage
wackerow 3408ebb
Merge branch 'dev' into homepage
wackerow 04934b9
refactor: svg icons to 1em width/height
wackerow 0e9e667
fix: event sorting/filtering
wackerow e82e822
fix: SvgButtonLink styling
wackerow 6e3b55b
fix: homepage styling atches
wackerow 003dca2
fix: rss links
wackerow 273f7e7
fix: add hsla wrapper to color tokens
wackerow 72ad778
styling: clean up news and events cards
wackerow 2e7e30b
temp: rm section until designs completed
wackerow 8aadb22
patch: wording
wackerow b5007fb
style: rm external arrow; use new calendar-add icon
wackerow 9cb6819
Merge branch 'dev' into homepage
wackerow 44f70b4
chore: auto-linter
wackerow 127b2cc
refactor: extract EventPreviewCard component
wackerow 990c65f
chore: extract reused cn's
wackerow 9e0503a
fix: use hsla instead of rgba
wackerow 5b7412d
chore: add purple color palette to tw config
wackerow 7b9df84
fix: use solid and outline-primary variants
wackerow a0f5766
refactor: use tw gradients, rm custom tokens
wackerow aa5a928
fix: use BaseLink
wackerow 4d83962
refactor: extract RssPreviewCard component
wackerow d941cb9
fix: event card filtering and tablet layout
wackerow ccaa18b
fix: mobile swiper overflowing
wackerow c054fee
chore: clean up patches
wackerow 6f5431f
theme: add svg-button-link shadow tokens
wackerow 177f45c
feat: hover and focus styling
wackerow fc00bb3
fix: rm repeated hsla wrapper
wackerow 35973e4
chore: rm unused class styling
wackerow d690756
Merge branch 'dev' into homepage
wackerow 8d0d057
refactor: accept size and variant as direct props
wackerow 7cca606
theme: update solid button to primary-action
wackerow 454ec43
refactor: use button size and variant props
wackerow 2f62784
refactor: accept isSecondary as direct props
wackerow 03ff3a3
refactor: extract SwiperCards, mv BentoBox
wackerow ce36d0c
chore: focus styling
wackerow 673879f
fix: deprecate/rm `date`
wackerow af11812
fix: outline variant text color
wackerow 25412fd
chore: clean up patches
wackerow e330d41
refactor: pass className to HomeHero
wackerow 1d05798
style: update base `card` components and variants
wackerow 006f18f
refactor: use reusable card components
wackerow 735eae4
chore: up-res event-placeholder
wackerow 99b67e9
refactor: mv attestant fetch to fetchPosts
wackerow e08f39e
feat: add solidity and panda ops rss feeds
wackerow 150d954
chore(deps): bump swiper
wackerow dcd10b1
chore: remove unused class
wackerow 1fdea29
refactor: extract PostPreviewCard
wackerow d22b0fd
feat: create PostsSwiper component
wackerow d42a116
feat: implement mobile PostsSwiper
wackerow 65e8c1c
feat: add "read more" blogs
wackerow a3d7639
chore: dim gradient
wackerow cbc6fea
Merge branch 'dev' into homepage
wackerow 78d6df7
chore: layout adjustments
wackerow 32d22c3
style: add missing spacing
wackerow 2b6da02
feat: add growthepie metrics
wackerow 6acde0e
fix: swiper card width and overflow handling
wackerow 7e0d7ad
feat: add variants to SvgButtonLink
wackerow c1106fc
fix: update all SvgButtonLink with variants
wackerow 526fa25
chore: use updated Tooltip component
wackerow ac97f6b
fix: fragment key
wackerow bacc757
chore: update name
wackerow 9cedf2b
chore: patch style
wackerow dc0c5c1
feat: add last updated date to metrics
wackerow 4f9fef1
chore: image sizing and layout adjustment
wackerow 4b3cccf
chore: apply suggestions from design review
wackerow 7b38914
theme: sync color tokens with latest design system
wackerow 1a42937
chore: remove time from last updated string
wackerow 387b608
chore: remove bold from first item
wackerow 8ba4ffd
feat: add EthStaker blog to RSS feeds
wackerow 4650986
theme: sync chakra theme with new primary tokens
wackerow e0b2466
patch: spacing adjustment
wackerow a1bb94a
feat: improve fetchRSS logic error handling
wackerow eeda7cd
feat: add 0xParc rss feed and image asset
wackerow 39a7534
chore: add fallback images for events
wackerow 68386d9
chore: linting, small figma adjustments
wackerow a6f058b
style: apply suggestions from design review
wackerow 59efed8
fix: phone-homescreen sizing
wackerow 4af1a7f
chore: use vector banner for vitalik blog
wackerow 10b16a8
feat: implement nav/pagination for swiper cards
wackerow 96a9b6d
feat: add default bg-gradient to card banner
wackerow f347220
Merge branch 'dev' into homepage
wackerow ed1bb89
theme: add radial-a
wackerow 7e65847
chore: rm accent-gradients
wackerow 09948f3
fix: bg and border gradients for "join" card
wackerow bd307bd
chore: restyle and arrange title
wackerow 02bbc63
chore: clean up feed naming, fix media pulls
wackerow cb2a257
feat: add pagination/nav to mobile PostsSwiper
wackerow 77755b7
chore: rearrange title per design review
wackerow f485d02
patch: metric label
wackerow 32821ab
chore: adjust date range formatting for events
wackerow 7f11711
chore: upres event placeholder image
wackerow 901bc0b
chore: extract homepage strings for intl
wackerow 7496c35
chore: clean up unused
wackerow e8e9697
theme: update base color tokens
wackerow 363a0bd
fix: accent color hover styling
wackerow 8c2b3bb
theme: update shadow tokens
wackerow b326756
chore: font size and margin adjustments
wackerow f473ec5
fix: WindowBox shadow and spacing
wackerow 971cb78
chore: apply outline variant (secondary action)
wackerow 2a80454
fix: accent/primary hover styling
wackerow ca27208
feat: update RSS logic
wackerow d3580a0
patch: make cal event title into link
wackerow ee5cd8b
fix: accent hover styles
wackerow a0791fc
chore: adjust flex breakpoint
wackerow d3236d7
chore: make button primary action, update label
wackerow c8e37fa
chore: adjustments
wackerow cfc4329
style: use multi-line syntax for long tokens
wackerow 3688f0b
fix: hydration warnings from useBentoBox
wackerow f35de90
refactor: unify card styling
wackerow 58f580b
refactor: HomeSection props
wackerow 030ce94
feat: create ui/section component
wackerow 2ff97e3
refactor: use Stack with gap
wackerow eb63cd1
refactor: use ui/section within HomeSection
wackerow 5b560cc
deprecate: HomeSection in lieu of reusable Section
wackerow aba8bb3
revert: refactor: use Stack with gap
wackerow 6345221
performance: lazy load Codeblock and StatsBoxGrid
wackerow b0b809b
refactor: use capitalized component names
wackerow 5330c49
refactor: CommunityBlog type, require feed OR name
wackerow bb81754
chore: cleanup
wackerow 81ffc3c
chore: sync chakra theme; solid button and colors
wackerow b5df634
chore: general polishes and cleanup
wackerow 1903544
chore: apply bg gradients to WindowBox
wackerow ed64296
feat: use TwImage over NextImage
wackerow 4484598
deprecate: recently added linear gradient tokens
wackerow 7e74dbf
chore: rm unnecessary placeholder div
wackerow e05abae
chore: punctuation patch
wackerow b3df372
Revert "chore: rm unnecessary placeholder div"
wackerow d1d24ca
Merge branch 'dev' into homepage
wackerow 38c1cc8
chore: apply adjustments from review
wackerow 2d5e079
theme: adjust hover tokens
wackerow 341ed45
copy: adjustments
wackerow 42cdff4
refactor: extract homepage logic to useHome
wackerow 198f5e9
chore: patch event logic, show events today
wackerow 02ec3cc
chore: rm unused imports, linting
wackerow 877809a
refactor: title -> header
wackerow 3fa2e7b
refactor: useBentoBox
wackerow 6946817
feat: add screen util, BreakpointKey type
wackerow 776db76
refactor: update useBentoBox organization
wackerow cc9306b
feat: implement PostsSwiper for desktop
wackerow d76f606
feat: create re-usable SlidingSwiper component
wackerow 74146ab
style: rename and mv Swiper, mv useHome
wackerow 233778f
refactor: use Slider component for sliders
wackerow c2769e6
deprecate: single-use swiper components
wackerow 82b4999
theme: color and token adjustments
wackerow d77ac49
refactor: rm single-use bentobox and title,
wackerow 0e137b9
refactor: BentoCard, ui/card
wackerow be6d996
style: move homepage related items to /Homepage
wackerow 4da3525
theme: sync chakra primaryAction and solid Button
wackerow 46537a5
fix: small patches and improvements
wackerow 7b726b6
fix: bento box classes on homepage
wackerow df6f53e
fix: empty bento box on load
wackerow cb6f1ca
fix: hover and focus states for card `group/link`
wackerow 281fda4
chore: patches
wackerow 3962a0d
chore: adjust button container sizing
wackerow fa9f8b0
refactor: add variants to ui/section
wackerow 8a1be75
feat: homepage sections to use ui/section
wackerow 61aef20
Merge branch 'dev' into homepage
wackerow c117744
chore: adjustments, add todo
wackerow 38acf90
refactor: MainArticle to tailwind
wackerow 6d1dde6
add missing Suspense wrapper around lazy component
pettinarip 38339fc
refactor: MainArticle for tailwind
wackerow f8828ba
Merge branch 'dev' into homepage
wackerow 701648e
chore: apply review suggestions, resolve merge
wackerow f4c0ceb
feat: add ui/skeleton
wackerow f44c0a9
chore: adjust section scroll mt
wackerow 25ccbe6
refactor: use ui/skeleton, and MainArticle
wackerow 655433c
chore: adjust homepage layout spacing
wackerow 5a624f5
feat: update Codeblock for tw, latest color theme
wackerow 6d1f252
refactor: extract exported tailwind config
wackerow 9671459
refactor: create tw rtl-reponsive next/prev icons
wackerow 4a2fc64
fix: twFlipForRtl horizontal flip class
wackerow 7b9b8b2
fix: use rtl responsive chevrons
wackerow 2069fb8
fix: use rtl responsive text lignment
wackerow 752a87f
Merge branch 'homepage' into homepage-codeblock
wackerow 9e62895
refactor: use fetchGrowThePie for txCount
wackerow 89654da
deprecate: unused data fetch utilities
wackerow c4da3b0
Merge branch 'homepage' of https://github.com/ethereum/ethereum-org-w…
nloureiro fc0c0ab
Merge branch 'dev' into homepage
wackerow 2dec337
fix: remove createElements
wackerow 6b1a628
feat: add support for atom feeds
wackerow 52d08b1
feat: activate PSE and Josh Stark feeds
wackerow 6e205c9
refactor: simplify types and getters
wackerow 4d13857
Merge pull request #13806 from ethereum/homepage-atom-feed
pettinarip 7cc5953
Merge pull request #13801 from ethereum/homepage-codeblock
pettinarip File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
import { type ReactNode } from "react" | ||
import { useRouter } from "next/router" | ||
import { useTranslation } from "next-i18next" | ||
import { MdInfoOutline } from "react-icons/md" | ||
|
||
import { cn } from "@/lib/utils/cn" | ||
import { isValidDate } from "@/lib/utils/date" | ||
|
||
import Tooltip from "../Tooltip" | ||
import Link from "../ui/Link" | ||
|
||
type BigNumberProps = { | ||
children: ReactNode | ||
value?: ReactNode | ||
sourceName?: string | ||
sourceUrl?: string | ||
lastUpdated?: number | string | ||
className?: string | ||
} | ||
|
||
const BigNumber = ({ | ||
children, | ||
value, | ||
sourceName, | ||
sourceUrl, | ||
lastUpdated, | ||
className, | ||
}: BigNumberProps) => { | ||
const { t } = useTranslation("common") | ||
const { locale } = useRouter() | ||
const lastUpdatedDisplay = | ||
lastUpdated && isValidDate(lastUpdated) | ||
? new Intl.DateTimeFormat(locale, { | ||
dateStyle: "medium", | ||
}).format(new Date(lastUpdated)) | ||
: "" | ||
return ( | ||
<div | ||
className={cn( | ||
"flex flex-1 shrink-0 flex-col self-stretch py-8", | ||
className | ||
)} | ||
> | ||
{value ? ( | ||
<> | ||
<div className="text-5xl font-bold">{value}</div> | ||
<div className="text-sm"> | ||
{children} | ||
{sourceName && sourceUrl && ( | ||
<Tooltip | ||
content={ | ||
<> | ||
<p> | ||
{t("data-provided-by")}{" "} | ||
<Link href={sourceUrl}>{sourceName}</Link> | ||
</p> | ||
{lastUpdated && ( | ||
<p className="mt-2"> | ||
{t("last-updated")}: {lastUpdatedDisplay} | ||
</p> | ||
)} | ||
</> | ||
} | ||
> | ||
<MdInfoOutline className="mb-0.5 ms-2 inline align-text-bottom" /> | ||
</Tooltip> | ||
)} | ||
</div> | ||
</> | ||
) : ( | ||
<span className="text-3xl">{t("loading-error-refresh")}</span> | ||
)} | ||
</div> | ||
) | ||
} | ||
export default BigNumber |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
import { cva, VariantProps } from "class-variance-authority" | ||
import type { FC, ReactNode, SVGProps } from "react" | ||
|
||
import { cn } from "@/lib/utils/cn" | ||
|
||
import { BaseLink } from "../ui/Link" | ||
|
||
type SvgButtonLinkProps = { | ||
Svg: FC<SVGProps<SVGElement>> | ||
label?: string | ||
children: ReactNode | ||
href: string | ||
className?: string | ||
size?: number | ||
} | ||
|
||
const variants = cva("flex items-center gap-3.5", { | ||
variants: { | ||
variant: { | ||
col: "flex-col text-center [&_.body]:text-center", | ||
row: "flex-row text-start [&_.body]:text-start [&_.header]:self-start", | ||
}, | ||
}, | ||
defaultVariants: { | ||
variant: "row", | ||
}, | ||
}) | ||
|
||
type Variants = VariantProps<typeof variants> | ||
|
||
const SvgButtonLink = ({ | ||
label, | ||
children, | ||
Svg, | ||
className, | ||
variant, | ||
...props | ||
}: SvgButtonLinkProps & Variants) => ( | ||
<BaseLink | ||
className={cn( | ||
"group rounded-2xl no-underline focus:outline focus:outline-4 focus:outline-offset-8", | ||
className | ||
)} | ||
hideArrow | ||
{...props} | ||
> | ||
<div className={cn(variants({ variant }))}> | ||
<div | ||
className={cn( | ||
"header", | ||
"relative grid aspect-square size-[5em] shrink-0 place-items-center", | ||
"rounded-2xl border shadow-svg-button-link transition-all duration-200", | ||
"group-hover:shadow-svg-button-link-hover group-hover:transition-all group-hover:duration-200", | ||
"group-focus:shadow-none group-focus:transition-all group-focus:duration-200" | ||
)} | ||
> | ||
<Svg | ||
className={cn( | ||
"group-hover:rotate-3 group-hover:scale-110", | ||
"group-focus:rotate-3 group-focus:scale-110", | ||
"text-4xl duration-200 group-hover:duration-200 group-focus:rotate-3" | ||
)} | ||
/> | ||
</div> | ||
<div className="body"> | ||
{label && <p className="text-xl font-bold">{label}</p>} | ||
{children} | ||
</div> | ||
</div> | ||
</BaseLink> | ||
) | ||
|
||
export default SvgButtonLink |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
import { MdChevronLeft, MdChevronRight } from "react-icons/md" | ||
|
||
import { cn } from "@/lib/utils/cn" | ||
|
||
import { useRtlFlip } from "@/hooks/useRtlFlip" | ||
|
||
export const ChevronNext = ({ | ||
className, | ||
...props | ||
}: React.HTMLAttributes<SVGElement>) => { | ||
const { twFlipForRtl } = useRtlFlip() | ||
return <MdChevronRight className={cn(className, twFlipForRtl)} {...props} /> | ||
} | ||
|
||
export const ChevronPrev = ({ | ||
className, | ||
...props | ||
}: React.HTMLAttributes<SVGElement>) => { | ||
const { twFlipForRtl } = useRtlFlip() | ||
return <MdChevronLeft className={cn(className, twFlipForRtl)} {...props} /> | ||
} |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not blocking
IMO this component should not exist. Instead, we should use the
ButtonTwoLines
component or, add customization on top of it. Otherwise, we are fall into the same problem we had with creating new components for each specific implementation.But....since the current
ButtonTwoLines
is not working really well after the migration and the api is not very flexible, I would lean towards leaving it. The ideal solution for me is to rebuild theButtonTwoLines
with a radix-type api: