Skip to content

Commit 812e062

Browse files
author
Jean-François Lépine
committed
used shadcdn theme for button
1 parent 5057785 commit 812e062

File tree

2 files changed

+17
-10
lines changed

2 files changed

+17
-10
lines changed

src/Toolkit/registry/default/components/Button.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"manifest": "components/Button.json",
44
"theme": "",
55
"type": "component",
6-
"code": "{%- props variant = 'default', outline = false -%}\n{%- set style = html_cva(\n base: '',\n variants: {\n variant: {\n default: \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-9 px-4 py-2\",\n secondary: \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80 h-9 px-4 py-2\",\n destructive: \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90 h-9 px-4 py-2\",\n ghost: \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 hover:bg-accent hover:text-accent-foreground h-9 px-4 py-2\",\n },\n outline: {\n true: \"text-foreground bg-white\",\n }\n },\n compoundVariants: [{\n variant: ['default'],\n outline: ['true'],\n class: 'border-primary',\n }, {\n variant: ['secondary'],\n outline: ['true'],\n class: 'border-secondary',\n }, {\n variant: ['destructive'],\n outline: ['true'],\n class: 'border-destructive',\n },]\n) -%}\n\n<button\n class=\"{{ style.apply({variant, outline}, attributes.render('class'))|tailwind_merge }}\"\n {{ attributes.defaults({}).without('class') }}\n>\n {% block content %}Button{% endblock %}\n</button>\n",
7-
"fingerprint": "6ae51f1eef38ae0fd3aa3b966c98d7f8",
6+
"code": "{%- props variant = 'default', outline = false, size = 'default' -%}\n{%- set style = html_cva(\n base: 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n secondary: \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive: \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n outline: {\n true: \"text-foreground bg-white\",\n },\n size: {\n default: \"h-10 px-4 py-2\",\n sm: \"h-9 rounded-md px-3\",\n lg: \"h-11 rounded-md px-8\",\n icon: \"h-10 w-10\",\n },\n },\n compoundVariants: [{\n variant: ['default'],\n outline: ['true'],\n class: 'border-primary',\n }, {\n variant: ['secondary'],\n outline: ['true'],\n class: 'border-secondary',\n }, {\n variant: ['destructive'],\n outline: ['true'],\n class: 'border-destructive',\n },]\n) -%}\n\n<button\n class=\"{{ style.apply({variant, outline, size}, attributes.render('class'))|tailwind_merge }}\"\n {{ attributes.defaults({}).without('class') }}\n>\n {% block content %}Button{% endblock %}\n</button>\n",
7+
"fingerprint": "e8af4da83dc7b708414e4c5f2985ffa8",
88
"dependencies": []
99
}

src/Toolkit/templates/default/components/Button.html.twig

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,23 @@
1-
{%- props variant = 'default', outline = false -%}
1+
{%- props variant = 'default', outline = false, size = 'default' -%}
22
{%- set style = html_cva(
3-
base: '',
3+
base: 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',
44
variants: {
55
variant: {
6-
default: "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-9 px-4 py-2",
7-
secondary: "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80 h-9 px-4 py-2",
8-
destructive: "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90 h-9 px-4 py-2",
9-
ghost: "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 hover:bg-accent hover:text-accent-foreground h-9 px-4 py-2",
6+
default: "bg-primary text-primary-foreground hover:bg-primary/90",
7+
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
8+
destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
9+
ghost: "hover:bg-accent hover:text-accent-foreground",
10+
link: "text-primary underline-offset-4 hover:underline",
1011
},
1112
outline: {
1213
true: "text-foreground bg-white",
13-
}
14+
},
15+
size: {
16+
default: "h-10 px-4 py-2",
17+
sm: "h-9 rounded-md px-3",
18+
lg: "h-11 rounded-md px-8",
19+
icon: "h-10 w-10",
20+
},
1421
},
1522
compoundVariants: [{
1623
variant: ['default'],
@@ -28,7 +35,7 @@
2835
) -%}
2936

3037
<button
31-
class="{{ style.apply({variant, outline}, attributes.render('class'))|tailwind_merge }}"
38+
class="{{ style.apply({variant, outline, size}, attributes.render('class'))|tailwind_merge }}"
3239
{{ attributes.defaults({}).without('class') }}
3340
>
3441
{% block content %}Button{% endblock %}

0 commit comments

Comments
 (0)