diff --git a/client/src/components/Layout.tsx b/client/src/components/Layout.tsx index 411176f..88f32db 100644 --- a/client/src/components/Layout.tsx +++ b/client/src/components/Layout.tsx @@ -18,40 +18,40 @@ export const Layout: React.FC = () => { return (
-
+
-
diff --git a/client/src/index.css b/client/src/index.css index 93483a3..03a47ec 100644 --- a/client/src/index.css +++ b/client/src/index.css @@ -55,13 +55,21 @@ button { .btn-primary { background: var(--accent-gradient); color: white; - padding: 0.75rem 1.5rem; + padding: 0.625rem 1.25rem; border-radius: 0.5rem; font-weight: 600; transition: all 0.2s ease; display: inline-flex; align-items: center; gap: 0.5rem; + font-size: 0.875rem; +} + +@media (min-width: 768px) { + .btn-primary { + padding: 0.75rem 1.5rem; + font-size: 1rem; + } } .btn-primary:hover { @@ -70,14 +78,31 @@ button { box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3); } +.btn-primary:disabled { + opacity: 0.6; + cursor: not-allowed; + transform: none; +} + .btn-secondary { background: var(--bg-secondary); color: var(--text-primary); - padding: 0.75rem 1.5rem; + padding: 0.625rem 1.25rem; border-radius: 0.5rem; font-weight: 600; border: 1px solid var(--glass-border); transition: all 0.2s ease; + display: inline-flex; + align-items: center; + gap: 0.5rem; + font-size: 0.875rem; +} + +@media (min-width: 768px) { + .btn-secondary { + padding: 0.75rem 1.5rem; + font-size: 1rem; + } } .btn-secondary:hover { @@ -90,13 +115,22 @@ textarea { background: var(--bg-secondary); border: 1px solid var(--glass-border); color: var(--text-primary); - padding: 0.75rem; + padding: 0.625rem; border-radius: 0.5rem; width: 100%; - font-size: 1rem; + font-size: 0.875rem; transition: border-color 0.2s; } +@media (min-width: 768px) { + input, + select, + textarea { + padding: 0.75rem; + font-size: 1rem; + } +} + input:focus, select:focus, textarea:focus { @@ -107,10 +141,22 @@ textarea:focus { .container { max-width: 1200px; margin: 0 auto; - padding: 2rem; + padding: 1rem; width: 100%; } +@media (min-width: 640px) { + .container { + padding: 1.5rem; + } +} + +@media (min-width: 768px) { + .container { + padding: 2rem; + } +} + .page-transition { /* animation: fadeIn 0.3s ease-in-out; */ } @@ -148,11 +194,14 @@ textarea:focus { /* Scanner Overrides */ #reader { border: none !important; + max-width: 100% !important; } #reader video { border-radius: 0.5rem; object-fit: cover; + max-width: 100% !important; + height: auto !important; } #reader__scan_region { @@ -167,6 +216,13 @@ textarea:focus { border-radius: 0.5rem !important; font-weight: 600 !important; margin-top: 1rem !important; + font-size: 0.875rem !important; +} + +@media (min-width: 768px) { + #reader__dashboard_section_csr button { + font-size: 1rem !important; + } } #reader__dashboard_section_swaplink { @@ -174,4 +230,11 @@ textarea:focus { text-decoration: none !important; margin-top: 0.5rem !important; display: inline-block !important; + font-size: 0.875rem !important; +} + +@media (min-width: 768px) { + #reader__dashboard_section_swaplink { + font-size: 1rem !important; + } } diff --git a/client/src/pages/Generate.tsx b/client/src/pages/Generate.tsx index 86dfdb8..82c8d46 100644 --- a/client/src/pages/Generate.tsx +++ b/client/src/pages/Generate.tsx @@ -56,14 +56,14 @@ export const Generate: React.FC = () => { }; return ( -
-
+
+
-

Generate Ticket

-

Create a new QR code ticket for an attendee.

+

Generate Ticket

+

Create a new QR code ticket for an attendee.

-
+
{
{generatedTicket ? ( -
-
+
+
Ticket generated successfully!
- -
+ +
-

{generatedTicket.attendeeName}

-

{generatedTicket.ticketType} Ticket

+

{generatedTicket.attendeeName}

+

{generatedTicket.ticketType} Ticket

-
+