Upgrade vers Svelte 5 et reproduction de la page d'accueil
- Upgrade : Svelte 5.0.0, Vite 7.0.4, @sveltejs/vite-plugin-svelte 6.0.0 - Migration syntaxe Svelte 5 : $derived, $props(), onclick, mount() - Navbar identique au site source avec logo GIF et menu animé - Page Home avec vidéo plein écran et lignes verticales - CSS modulaire organisé en fichiers séparés (variables, fonts, layout, buttons, etc.) - Assets copiés : fonts Danzza, vidéos, icônes Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
cbe89acb21
commit
a12c2df8f9
28 changed files with 1062 additions and 576 deletions
53
src/styles/buttons.css
Normal file
53
src/styles/buttons.css
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
/* Button */
|
||||
.button {
|
||||
width: 14vmax;
|
||||
min-width: 130px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
position: sticky;
|
||||
z-index: 1;
|
||||
padding: 12px 16px;
|
||||
transition: 0.5s ease-out;
|
||||
font-family: "Danzza Bold";
|
||||
background-color: var(--color-primary);
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.button:hover {
|
||||
background-position: left;
|
||||
background-color: transparent;
|
||||
outline: solid 2px var(--color-primary);
|
||||
}
|
||||
|
||||
.button p {
|
||||
color: black;
|
||||
margin: 0;
|
||||
transition: color 0.3s;
|
||||
}
|
||||
|
||||
.button:hover p {
|
||||
color: var(--color-primary) !important;
|
||||
}
|
||||
|
||||
.earth-icon {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
background-image: url('/assets/img/icon-earth-green.png');
|
||||
background-size: contain;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
margin-right: 8px;
|
||||
transition: filter 0.3s;
|
||||
}
|
||||
|
||||
.button:hover .earth-icon {
|
||||
filter: brightness(0) saturate(100%) invert(77%) sepia(82%) saturate(507%) hue-rotate(91deg) brightness(101%) contrast(97%);
|
||||
}
|
||||
|
||||
/* Clickable elements */
|
||||
.clickable {
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
}
|
||||
42
src/styles/cursor.css
Normal file
42
src/styles/cursor.css
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
/* Custom Cursor */
|
||||
#cursor-dot,
|
||||
#cursor-dot-outline,
|
||||
#cursor-circle {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
z-index: 99999;
|
||||
transform: translate(-50%, -50%);
|
||||
transition: opacity 0.15s ease-in-out, transform 0.15s ease-in-out;
|
||||
border-radius: 50%;
|
||||
pointer-events: none;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
#cursor-dot {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
#cursor-circle {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
border-width: 3px;
|
||||
border-style: solid;
|
||||
border-color: var(--color-primary);
|
||||
}
|
||||
|
||||
#cursor-dot-outline {
|
||||
width: 13px;
|
||||
height: 13px;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
@media (pointer: coarse) {
|
||||
#cursor-dot,
|
||||
#cursor-dot-outline,
|
||||
#cursor-circle {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
60
src/styles/fonts.css
Normal file
60
src/styles/fonts.css
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
/* Font faces */
|
||||
@font-face {
|
||||
font-family: "Terminal";
|
||||
font-weight: bold;
|
||||
src: local("terminal-grotesque"),
|
||||
url("/assets/fonts/terminal-grotesque.ttf") format("truetype");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Danzza";
|
||||
src: local("Danzza Regular"),
|
||||
url("/assets/fonts/Danzza-Regular.woff") format("woff"),
|
||||
url("/assets/fonts/Danzza-Regular.otf") format("opentype");
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Danzza Light";
|
||||
src: local("Danzza Light"),
|
||||
url("/assets/fonts/Danzza-Light.woff") format("woff"),
|
||||
url("/assets/fonts/Danzza-Light.otf") format("opentype");
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Danzza Medium";
|
||||
src: local("Danzza Medium"),
|
||||
url("/assets/fonts/Danzza-Medium.woff") format("woff"),
|
||||
url("/assets/fonts/Danzza-Medium.otf") format("opentype");
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Danzza Bold";
|
||||
src: local("Danzza Bold"),
|
||||
url("/assets/fonts/Danzza-Bold.woff") format("woff"),
|
||||
url("/assets/fonts/Danzza-Bold.otf") format("opentype");
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
/* Font utility classes */
|
||||
.font-face-terminal {
|
||||
font-family: "Terminal";
|
||||
}
|
||||
|
||||
.font-face-danzza {
|
||||
font-family: "Danzza";
|
||||
}
|
||||
|
||||
.font-face-danzza-light {
|
||||
font-family: "Danzza Light";
|
||||
}
|
||||
|
||||
.font-face-danzza-medium {
|
||||
font-family: "Danzza Medium";
|
||||
}
|
||||
|
||||
.font-face-danzza-bold {
|
||||
font-family: "Danzza Bold";
|
||||
}
|
||||
8
src/styles/index.css
Normal file
8
src/styles/index.css
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
/* Main styles entry point */
|
||||
@import './variables.css';
|
||||
@import './reset.css';
|
||||
@import './fonts.css';
|
||||
@import './layout.css';
|
||||
@import './buttons.css';
|
||||
@import './cursor.css';
|
||||
@import './utils.css';
|
||||
42
src/styles/layout.css
Normal file
42
src/styles/layout.css
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
/* Golden Grid */
|
||||
.golden-grid {
|
||||
height: 100% !important;
|
||||
min-height: 100% !important;
|
||||
display: grid !important;
|
||||
position: relative;
|
||||
grid-template-rows: 1fr 1fr 2fr 4fr 2.66fr 5.33fr 5.33fr 4.33fr 2.83fr 3.5fr 3.5fr 2.83fr 4.33fr 5.33fr 5.33fr 2.66fr 4fr 2fr 1fr 1fr;
|
||||
grid-template-columns: 1fr 1fr 2fr 4fr 2.66fr 5.33fr 5.33fr 4.33fr 2.83fr 3.5fr 3.5fr 2.83fr 4.33fr 5.33fr 5.33fr 2.66fr 4fr 2fr 1fr 1fr;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.slide {
|
||||
overflow-y: hidden;
|
||||
}
|
||||
|
||||
/* Vertical Lines */
|
||||
.vertical-line {
|
||||
z-index: 1;
|
||||
border-left: 0.1px solid rgba(238, 238, 238, 0.2);
|
||||
height: 150%;
|
||||
}
|
||||
|
||||
.vertical-line-start {
|
||||
z-index: 1;
|
||||
border-left: 0.1px solid rgba(238, 238, 238, 0.2);
|
||||
grid-area: 1/6 / span 20 / span 1;
|
||||
height: 150%;
|
||||
}
|
||||
|
||||
.vertical-line-center {
|
||||
z-index: 1;
|
||||
border-left: 0.1px solid rgba(238, 238, 238, 0.2);
|
||||
grid-area: 1/11 / span 20 / span 1;
|
||||
height: 150%;
|
||||
}
|
||||
|
||||
.vertical-line-end {
|
||||
z-index: 1;
|
||||
border-left: 0.1px solid rgba(238, 238, 238, 0.2);
|
||||
grid-area: 1/16 / span 20 / span 1;
|
||||
height: 150%;
|
||||
}
|
||||
34
src/styles/reset.css
Normal file
34
src/styles/reset.css
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
/* CSS Reset */
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
cursor: none;
|
||||
}
|
||||
|
||||
html,
|
||||
body {
|
||||
height: 100%;
|
||||
min-height: 100vh;
|
||||
min-height: -webkit-fill-available;
|
||||
min-height: calc(var(--vh, 1vh) * 100);
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: "Danzza Regular", "Danzza", -apple-system, BlinkMacSystemFont,
|
||||
"Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans",
|
||||
"Droid Sans", "Helvetica Neue", sans-serif;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
background: var(--color-background);
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
@media (pointer: coarse) {
|
||||
body,
|
||||
* {
|
||||
cursor: auto;
|
||||
}
|
||||
}
|
||||
23
src/styles/utils.css
Normal file
23
src/styles/utils.css
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
/* Selection */
|
||||
::selection {
|
||||
background: var(--color-primary);
|
||||
color: #000;
|
||||
}
|
||||
|
||||
/* Scrollbar */
|
||||
::-webkit-scrollbar {
|
||||
width: 10px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
background: #000;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: var(--color-primary);
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background: var(--color-primary-hover);
|
||||
}
|
||||
38
src/styles/variables.css
Normal file
38
src/styles/variables.css
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
/* CSS Variables */
|
||||
:root {
|
||||
/* Base font sizes for desktop */
|
||||
--font-size-paragraph: 18px;
|
||||
--font-size-paragraph-small: 16px;
|
||||
--font-size-subtitle: 20px;
|
||||
--font-size-title-section: 32px;
|
||||
--font-size-title-main: 48px;
|
||||
--font-size-title-hero: 96px;
|
||||
--font-size-button: 13px;
|
||||
--font-size-caption: 12px;
|
||||
|
||||
/* Mobile font sizes */
|
||||
--font-size-paragraph-mobile: 16px;
|
||||
--font-size-paragraph-small-mobile: 12px;
|
||||
--font-size-subtitle-mobile: 16px;
|
||||
--font-size-title-section-mobile: 24px;
|
||||
--font-size-title-main-mobile: 32px;
|
||||
--font-size-title-hero-mobile: 48px;
|
||||
--font-size-button-mobile: 11px;
|
||||
--font-size-caption-mobile: 10px;
|
||||
|
||||
/* Tablet font sizes */
|
||||
--font-size-paragraph-tablet: 16px;
|
||||
--font-size-paragraph-small-tablet: 14px;
|
||||
--font-size-subtitle-tablet: 18px;
|
||||
--font-size-title-section-tablet: 28px;
|
||||
--font-size-title-main-tablet: 40px;
|
||||
--font-size-title-hero-tablet: 64px;
|
||||
--font-size-button-tablet: 12px;
|
||||
--font-size-caption-tablet: 11px;
|
||||
|
||||
/* Colors */
|
||||
--color-primary: #04fea0;
|
||||
--color-primary-hover: #03d98c;
|
||||
--color-background: #000;
|
||||
--color-text: #fff;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue