diff --git a/common/components.py b/common/components.py index 95b0621..ce86c04 100644 --- a/common/components.py +++ b/common/components.py @@ -142,7 +142,13 @@ def Button( ): return Component( template="cotton/button.html", - attributes=attributes + [("size", size), ("icon", icon), ("color", color)], + attributes=attributes + + [ + ("size", size), + ("icon", icon), + ("color", color), + ("class", "hover:cursor-pointer"), + ], children=children, ) diff --git a/games/static/base.css b/games/static/base.css index fe08df7..d0ebaac 100644 --- a/games/static/base.css +++ b/games/static/base.css @@ -415,6 +415,9 @@ width: calc(var(--spacing) * 6); height: calc(var(--spacing) * 6); } + .h-2 { + height: calc(var(--spacing) * 2); + } .h-2\.5 { height: calc(var(--spacing) * 2.5); } @@ -451,9 +454,15 @@ .min-h-screen { min-height: 100vh; } + .w-1 { + width: calc(var(--spacing) * 1); + } .w-1\/2 { width: calc(1/2 * 100%); } + .w-2 { + width: calc(var(--spacing) * 2); + } .w-2\.5 { width: calc(var(--spacing) * 2.5); } @@ -517,9 +526,15 @@ .flex-1 { flex: 1; } + .flex-shrink { + flex-shrink: 1; + } .shrink { flex-shrink: 1; } + .border-collapse { + border-collapse: collapse; + } .-translate-x-full { --tw-translate-x: -100%; translate: var(--tw-translate-x) var(--tw-translate-y); @@ -555,6 +570,9 @@ .cursor-not-allowed { cursor: not-allowed; } + .resize { + resize: both; + } .list-inside { list-style-position: inside; } @@ -731,6 +749,10 @@ border-style: var(--tw-border-style); border-width: 1px; } + .border-0 { + border-style: var(--tw-border-style); + border-width: 0px; + } .border-0\! { border-style: var(--tw-border-style) !important; border-width: 0px !important; @@ -786,9 +808,15 @@ .bg-gray-500 { background-color: #6B7280; } + .bg-gray-800 { + background-color: #1F2937; + } .bg-gray-800\/20 { background-color: color-mix(in oklab, #1F2937 20%, transparent); } + .bg-gray-900 { + background-color: #111827; + } .bg-gray-900\/50 { background-color: color-mix(in oklab, #111827 50%, transparent); } @@ -822,6 +850,9 @@ .bg-white\/50 { background-color: color-mix(in oklab, #ffffff 50%, transparent); } + .p-1 { + padding: calc(var(--spacing) * 1); + } .p-1\.5 { padding: calc(var(--spacing) * 1.5); } @@ -852,6 +883,9 @@ .px-6 { padding-inline: calc(var(--spacing) * 6); } + .py-0 { + padding-block: calc(var(--spacing) * 0); + } .py-0\.5 { padding-block: calc(var(--spacing) * 0.5); } @@ -992,6 +1026,9 @@ .text-balance { text-wrap: balance; } + .text-wrap { + text-wrap: wrap; + } .whitespace-nowrap { white-space: nowrap; } @@ -1040,6 +1077,9 @@ .uppercase { text-transform: uppercase; } + .no-underline { + text-decoration-line: none; + } .no-underline\! { text-decoration-line: none !important; } @@ -1094,6 +1134,10 @@ -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); } + .backdrop-filter { + -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); + backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); + } .transition { transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events; transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); @@ -1235,6 +1279,13 @@ background-color: #F9FAFB; } } + .hover\:cursor-pointer { + &:hover { + @media (hover: hover) { + cursor: pointer; + } + } + } .hover\:border-gray-300 { &:hover { @media (hover: hover) { diff --git a/games/templates/cotton/button_group_button_sm.html b/games/templates/cotton/button_group_button_sm.html index d404cba..56e233b 100644 --- a/games/templates/cotton/button_group_button_sm.html +++ b/games/templates/cotton/button_group_button_sm.html @@ -4,19 +4,19 @@ {% if color == "gray" %} {% elif color == "red" %} {% elif color == "green" %} {% endif %} diff --git a/games/templates/navbar.html b/games/templates/navbar.html index e1e0abb..370ea88 100644 --- a/games/templates/navbar.html +++ b/games/templates/navbar.html @@ -27,7 +27,7 @@