From 5d569e3698de14475f86e9748994ec3c9c8bd5e5 Mon Sep 17 00:00:00 2001 From: jalvarado Date: Tue, 25 Mar 2025 14:27:01 -0600 Subject: [PATCH] Cambios --- public/button.png | Bin 0 -> 10987 bytes src/app/(components)/button/page.tsx | 104 ++++++++++++++++++++------- src/components/vista-componente.tsx | 24 +++---- src/styles/sass/bootstrap.scss | 31 ++++---- 4 files changed, 106 insertions(+), 53 deletions(-) create mode 100644 public/button.png diff --git a/public/button.png b/public/button.png new file mode 100644 index 0000000000000000000000000000000000000000..5d52fec219d3c7172891f0c4b0a8c299f5ab0aae GIT binary patch literal 10987 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 AhX4Qo literal 0 HcmV?d00001 diff --git a/src/app/(components)/button/page.tsx b/src/app/(components)/button/page.tsx index fc8642e..52251c4 100644 --- a/src/app/(components)/button/page.tsx +++ b/src/app/(components)/button/page.tsx @@ -1,68 +1,118 @@ -"use client"; +'use client'; -import IndiceContenido from "@/components/content-index"; -import VistaComponente from "@/components/vista-componente"; -import Button from "@/components/button"; +import IndiceContenido from '@/components/content-index'; +import VistaComponente from '@/components/vista-componente'; +import Button from '@/components/button'; export default function Page() { return ( <> -
-

+
+

🧩 Componente: Button

-

+

El componente <Button /> permite crear botones con estilos de Bootstrap, variantes personalizables, íconos opcionales y soporte completo para props de HTML estándar.

-
+
alert("¡Hola mundo!")}> Clic aquí `} > - Guardar `} > - +
+

+ Puedes consultar la lista completa de íconos disponibles en:{' '} + + https://icons.getbootstrap.com/ + +

+
+ + + Guardar +`} + > +
+
+ +
+
+ +
+
+ +
+
+
+ {/* PROPS */} -
-

⚙️ Props del componente

- +
+

⚙️ Props del componente

+
- - - + + + @@ -74,7 +124,7 @@ export default function Page() { string @@ -158,7 +208,7 @@ export default function Page() { ButtonHTMLAttributes<HTMLButtonElement> diff --git a/src/components/vista-componente.tsx b/src/components/vista-componente.tsx index 8a215ce..b8f75bf 100644 --- a/src/components/vista-componente.tsx +++ b/src/components/vista-componente.tsx @@ -1,6 +1,6 @@ -import { CodeBlock } from "./code-block"; -import Button from "./button"; -import { useState } from "react"; +import { CodeBlock } from './code-block'; +import Button from './button'; +import { useState } from 'react'; interface VistaComponenteProps { title: string; @@ -20,23 +20,23 @@ export default function VistaComponente({ const [showCode, setShowCode] = useState(false); return ( -
-

{title}

- {description &&

{description}

} +
+

{title}

+ {description &&

{description}

} -
+
{children} {code && ( -
+
{showCode && }
diff --git a/src/styles/sass/bootstrap.scss b/src/styles/sass/bootstrap.scss index 2da8cbe..e4cbffe 100644 --- a/src/styles/sass/bootstrap.scss +++ b/src/styles/sass/bootstrap.scss @@ -1,29 +1,29 @@ -@import "bootstrap/scss/functions"; +@import 'bootstrap/scss/functions'; -@import "variables"; +@import 'variables'; -@import "bootstrap/scss/variables"; -@import "bootstrap/scss/variables-dark"; +@import 'bootstrap/scss/variables'; +@import 'bootstrap/scss/variables-dark'; // Include any default map overrides here $azul: #003d79; $dorado: #d59f0f; $custom-colors: ( - "azul": $azul, - "dorado": $dorado, + 'azul': $azul, + 'dorado': $dorado, ); $theme-colors: map-merge($theme-colors, $custom-colors); -@import "bootstrap/scss/maps"; -@import "bootstrap/scss/mixins"; -@import "bootstrap/scss/bootstrap"; +@import 'bootstrap/scss/maps'; +@import 'bootstrap/scss/mixins'; +@import 'bootstrap/scss/bootstrap'; -@import "gradients"; -@import "extends"; -@import "table"; -@import "utilities"; +@import 'gradients'; +@import 'extends'; +@import 'table'; +@import 'utilities'; @import 'sidebar'; @import 'hover'; @import 'tabs'; @@ -33,7 +33,7 @@ $theme-colors: map-merge($theme-colors, $custom-colors); @include media-breakpoint-up(lg) { .bd-layout { display: grid; - grid-template-areas: "sidebar main"; + grid-template-areas: 'sidebar main'; grid-template-columns: 1fr 5fr; gap: $spacer * 1.5; } @@ -60,3 +60,6 @@ ul.list-unstyled li { } } +.btn-dorado { + color: $white !important; +}
PropTipoDescripciónPropTipoDescripción
- Clase base del botón. Ej: "primary",{" "} + Clase base del botón. Ej: "primary",{' '} "danger", etc.
- Soporta todas las props válidas de <button>{" "} + Soporta todas las props válidas de <button>{' '} nativo.