diff --git a/front_end/src/App.css b/front_end/src/App.css index 1dffe81..d62514f 100644 --- a/front_end/src/App.css +++ b/front_end/src/App.css @@ -1,40 +1,52 @@ /* Variables de thème */ [data-theme='dark'] { - --tint0: #000000; - --tint1: #0b0c0e; - --tint2: #16181d; - --tint3: #21252b; - --tint4: #2c313a; - --tint5: #373d48; - --text: #FFFFFF; + --tint0: #0a0e27; + --tint1: #1a1f3a; + --tint2: #232d4a; + --tint3: #2e3a59; + --tint4: #3d4a6f; + --tint5: #4a5a85; + --text: #f0f4f8; --text2: #000000; --disable: #02291d; --green-primary: #10b981; --green-secondary: #059669; --green-dark: #047857; - --green-A-primary: #10b98120; - --green-A-secondary: #05966920; - --green-A-dark: #04785720; - --themeButtonColor : #00AAFF; + --green-A-primary: #10b98130; + --green-A-secondary: #05966930; + --green-A-dark: #04785730; + --themeButtonColor: #00AAFF; + --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3); + --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.4); + --shadow-lg: 0 12px 32px rgba(0, 0, 0, 0.5); + --blue-accent: #3b82f6; + --purple-accent: #a78bfa; + --cyan-accent: #06b6d4; } [data-theme='light'] { - --tint0: #ffffff; - --tint1: #f4f1f1; - --tint2: #e8e4e3; - --tint3: #ddd6d5; - --tint4: #d2c8c6; - --tint5: #c6bab8; - --text: #000000; + --tint0: #f8fafc; + --tint1: #f1f5f9; + --tint2: #e2e8f0; + --tint3: #cbd5e1; + --tint4: #b0bac4; + --tint5: #94a3b8; + --text: #0f172a; --text2: #FFFFFF; --disable: #02291d; - --green-primary: #00ce89; - --green-secondary: #00a571; - --green-dark: #00825d; - --green-A-primary: #00ce8920; - --green-A-secondary: #00a57120; - --green-A-dark: #00825d20; - --themeButtonColor : #FFAA00; + --green-primary: #10b981; + --green-secondary: #059669; + --green-dark: #047857; + --green-A-primary: #10b98125; + --green-A-secondary: #05966925; + --green-A-dark: #04785725; + --themeButtonColor: #f59e0b; + --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05); + --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.1); + --shadow-lg: 0 12px 32px rgba(0, 0, 0, 0.15); + --blue-accent: #3b82f6; + --purple-accent: #a855f7; + --cyan-accent: #06b6d4; } /* Reset et base */ @@ -46,17 +58,18 @@ body { margin: 0; - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', - 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', - sans-serif; + font-family: 'Inter', 'Segoe UI', -apple-system, BlinkMacSystemFont, 'Roboto', 'Oxygen', + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; - background-color: var(--tint0); + background: linear-gradient(135deg, var(--tint0) 0%, var(--tint1) 100%); color: var(--text); - transition: background-color 0.3s ease, color 0.3s ease; + transition: background 0.4s ease, color 0.4s ease; + font-weight: 400; + line-height: 1.6; } -.padding{ +.padding { padding: 10px } @@ -71,10 +84,23 @@ code { color: var(--green-primary); } -.App{ +.App { display: grid; - padding: 10px; - gap:10px; + padding: 20px; + gap: 24px; + max-width: 1400px; + margin: 0 auto; +} + +.App h1 { + font-size: clamp(2rem, 5vw, 3.5rem); + font-weight: 700; + background: linear-gradient(135deg, var(--green-primary) 0%, var(--cyan-accent) 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; + margin-bottom: 8px; + letter-spacing: -0.5px; } /* Container principal */ @@ -83,18 +109,20 @@ code { background: linear-gradient(180deg, var(--tint0) 0%, var(--tint1) 100%); } -.composant-padding{ - padding: 10px; +.composant-padding { + padding: 10px; } -.composant-container{ - background-color: var(--tint2); - border-radius: 30px; - padding: 10px; - border: 2px solid var(--tint4); - box-shadow: 0 4px 6px rgba(16, 185, 129, 0.1); +.composant-container { + background: linear-gradient(135deg, var(--tint2) 0%, var(--tint3) 100%); + border-radius: 24px; + padding: 24px; + border: 1px solid var(--tint4); + box-shadow: var(--shadow-lg); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } + /* Header / Navigation */ .app-header { background-color: var(--tint1); @@ -134,18 +162,18 @@ code { /* Cards et containers */ .card { - background-color: var(--tint1); + background: linear-gradient(135deg, var(--tint1) 0%, var(--tint2) 100%); border-radius: 20px; - padding: 20px; - border: 2px solid var(--green-A-secondary); - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2); - transition: all 0.3s ease; + padding: 24px; + border: 1px solid var(--tint4); + box-shadow: var(--shadow-md); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .card:hover { border-color: var(--green-primary); - box-shadow: 0 6px 16px var(--green-A-primary); - transform: translateY(-2px); + box-shadow: 0 8px 24px var(--green-A-primary); + transform: translateY(-4px); } .card-header { @@ -171,20 +199,21 @@ input[type="time"], input[type="search"], input[type="datetime-local"], textarea { - background-color: var(--tint3); + background-color: var(--tint2); color: var(--text); - border: 2px solid var(--tint5); - border-radius: 8px; - padding: 10px 14px; - transition: all 0.3s ease; + border: 1px solid var(--tint4); + border-radius: 12px; + padding: 12px 14px; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); font-size: 15px; + font-family: inherit; } input:focus, textarea:focus { outline: none; border-color: var(--green-primary); - background-color: var(--tint3); + background-color: var(--tint1); box-shadow: 0 0 0 3px var(--green-A-primary); } @@ -227,23 +256,29 @@ select option { /* Buttons */ button { color: var(--text); - background-color: var(--tint3); - border: 2px solid var(--tint5); - border-radius: 8px; - padding: 5px 10px; + background: linear-gradient(135deg, var(--tint3) 0%, var(--tint4) 100%); + border: 1px solid var(--tint4); + border-radius: 12px; + padding: 10px 16px; cursor: pointer; - transition: all 0.3s ease; - font-weight: 500; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + font-weight: 600; font-size: 14px; display: inline-block; width: auto; + box-shadow: var(--shadow-sm); } button:hover { - background-color: var(--tint4); + background: linear-gradient(135deg, var(--green-primary) 0%, var(--green-secondary) 100%); border-color: var(--green-primary); + color: white; transform: translateY(-2px); - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); + box-shadow: 0 6px 20px var(--green-A-primary); +} + +button:active { + transform: translateY(0); } button:active { @@ -290,7 +325,7 @@ button.secondary:hover { .deleteButton, button.delete, .btn-danger { - background-color: #dc2626; + background: #dc2626; border: 2px solid #991b1b; border-radius: 10px; color: white; @@ -299,7 +334,7 @@ button.delete, .deleteButton:hover, button.delete:hover, .btn-danger:hover { - background-color: #b91c1c; + background: #b91c1c; border-color: #7f1d1d; } @@ -307,7 +342,7 @@ button.delete:hover, .addButton, button.add, .btn-success { - background-color: var(--green-primary); + background: var(--green-primary); border: none; border-radius: 10px; color: white; @@ -430,7 +465,8 @@ td { /* Lists */ -ul, ol { +ul, +ol { color: var(--text); padding-left: 20px; } @@ -547,6 +583,7 @@ input[type="radio"] { from { opacity: 0; } + to { opacity: 1; } @@ -557,6 +594,7 @@ input[type="radio"] { opacity: 0; transform: translateY(20px); } + to { opacity: 1; transform: translateY(0); diff --git a/front_end/src/components/edt.tsx b/front_end/src/components/edt.tsx index 9dd0ce5..c2894a6 100644 --- a/front_end/src/components/edt.tsx +++ b/front_end/src/components/edt.tsx @@ -170,7 +170,7 @@ export const EDT =() =>{