1+ : root {
2+ /* Colors */
3+ --color-white : hsl (0 , 0% , 100% );
4+ --color-slate-300 : hsl (212 , 45% , 89% );
5+ --color-slate-500 : hsl (216 , 15% , 48% );
6+ --color-slate-900 : hsl (218 , 44% , 22% );
7+ --color-accent : hsl (218 , 100% , 50% );
8+
9+ /* Card Styles */
10+ --radius-card : 1.25rem ;
11+ --radius-img : 0.625rem ;
12+ --shadow-card : 0 25px 25px rgba (0 , 0 , 0 , 0.05 );
13+
14+ /* Layout */
15+ --card-width : 20rem ; /* 320px */
16+ }
17+
18+ /* Base Reset */
19+ * ,
20+ * ::before ,
21+ * ::after {
22+ box-sizing : border-box;
23+ }
24+
25+ body {
26+ margin : 0 ;
27+ min-height : 100vh ;
28+ display : flex;
29+ flex-direction : column;
30+ justify-content : center;
31+ align-items : center;
32+ font-family : 'Outfit' , sans-serif;
33+ background-color : var (--color-slate-300 );
34+ padding : 1.5rem ;
35+ }
36+
37+ /* Main Component */
38+ .qr-container {
39+ background-color : var (--color-white );
40+ border-radius : var (--radius-card );
41+ box-shadow : var (--shadow-card );
42+ padding : 1rem ;
43+
44+ /* Mobile Respomsive */
45+ width : 90% ;
46+ max-width : 20rem ;
47+
48+ text-align : center;
49+ transition : background-color 0.3s ease;
50+ }
51+
52+ .qr-container img {
53+ width : 100% ;
54+ border-radius : var (--radius-img );
55+ display : block;
56+ }
57+
58+ .qr-container h1 {
59+ margin : 1.5rem 0 1rem ;
60+ font-size : 1.375rem ;
61+ font-weight : 700 ;
62+ line-height : 1.2 ;
63+ color : var (--color-slate-900 );
64+ padding : 0 0.5rem ;
65+ }
66+
67+ .qr-container p {
68+ margin-bottom : 1.5rem ;
69+ font-size : 0.9375rem ;
70+ line-height : 1.4 ;
71+ color : var (--color-slate-500 );
72+ padding : 0 1rem ;
73+ }
74+
75+ /* Attribution */
76+ footer .attribution {
77+ margin-top : 2rem ;
78+ font-size : 0.75rem ;
79+ color : var (--color-slate-500 );
80+ text-align : center;
81+ }
82+
83+ footer .attribution a {
84+ color : var (--color-accent );
85+ text-decoration : none;
86+ }
87+
88+ /* Dark Mode Support */
89+ @media (prefers-color-scheme : dark) {
90+ : root {
91+ --color-white : hsl (218 , 44% , 15% );
92+ --color-slate-300 : hsl (218 , 44% , 12% );
93+ --color-slate-500 : hsl (212 , 45% , 70% );
94+ --color-slate-900 : hsl (0 , 0% , 100% );
95+ --shadow-card : 0 25px 25px rgba (0 , 0 , 0 , 0.3 );
96+ }
97+ }
98+
99+ /* Accessibility */
100+ @media (prefers-reduced-motion : reduce) {
101+ * {
102+ animation-duration : 0.01ms !important ;
103+ animation-iteration-count : 1 !important ;
104+ transition-duration : 0.01ms !important ;
105+ scroll-behavior : auto !important ;
106+ }
107+ }
0 commit comments