diff --git a/src/components/Counter.sass b/src/components/Counter.sass new file mode 100644 index 0000000..5906f01 --- /dev/null +++ b/src/components/Counter.sass @@ -0,0 +1,47 @@ +.counter + display: flex + flex-direction: column + align-items: center + gap: 1rem + margin: 2rem + color: white + border: 1px solid rgba(22, 34, 60, 0.5) + padding: 1rem 2rem + border-radius: 16px + background: rgba(134, 152, 217, 0.1) + + &__display + font-size: 1.75rem + font-weight: bold + + &__buttons + display: flex + justify-content: center + gap: 0.25rem + + // &:hover + // background: color.adjust(vars.$primaryColor, $blackness: 20%) + + + &__decrement + width: 2rem + height: 2.25rem + padding: auto + font-size: 1rem + font-weight: bold + cursor: pointer + text-decoration: none + background-color: rgba(86, 14, 14, 0.915) + border-radius: 8px + color: white + border: 1px solid rgba(255,255,255,0.2) + + &:active + transform: scale(0.95) + + &__increment + @extend .counter__decrement + background-color: rgb(14, 42, 86, 0.915) + + &:active + transform: scale(0.95) diff --git a/src/components/Counter.tsx b/src/components/Counter.tsx new file mode 100644 index 0000000..e45cf73 --- /dev/null +++ b/src/components/Counter.tsx @@ -0,0 +1,30 @@ +import './Counter.sass' +import { createSignal } from 'solid-js' + +let [count, setCount] = createSignal(0) + +const increment = () => { + setCount(count() + 1) +} + +const decrement = () => { + setCount(count() - 1) +} + +export default () => { + return ( + <> +
+
{count()}
+
+ + +
+
+ + ) +} diff --git a/src/pages/index.astro b/src/pages/index.astro index 8c9daec..dcb6894 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -2,15 +2,18 @@ import Layout from '../layouts/Layout.astro' import Button from '../builtin-components/Button/Button.tsx' import Image from '../builtin-components/Image/Image' +import Link from '../builtin-components/Link/Link' +import Counter from '../components/Counter.tsx' --- - +
- + - +

Fast WebApp Template

+
@@ -24,7 +27,5 @@ import Image from '../builtin-components/Image/Image' align-content: center margin: 2rem height: 90vh - -