new design

This commit is contained in:
William Diakite 2025-06-25 22:57:30 -04:00
parent 5eb33592e9
commit 4b666a9215
8 changed files with 225 additions and 117 deletions

1
.ignore Normal file
View file

@ -0,0 +1 @@
public

View file

@ -31,5 +31,8 @@
"typescript": "^5.0.0",
"typescript-eslint": "^8.20.0",
"vite": "^6.0.0"
},
"dependencies": {
"remixicon": "^4.6.0"
}
}

View file

@ -1,5 +1,5 @@
<!doctype html>
<html lang="en">
<html class="light" lang="fr">
<head>
<meta charset="utf-8" />
<link rel="icon" href="%sveltekit.assets%/favicon.png" />

View file

@ -6,5 +6,16 @@
</script>
<article>
<document.default />
<div class="text-container">
<document.default />
</div>
<figure></figure>
</article>
<style>
figure {
margin-top: 2rem;
background-color: lightgray;
max-height: 400px;
}
</style>

View file

@ -2,107 +2,154 @@
/* @import 'fluid.css'; */
@import url('https://fonts.googleapis.com/css2?family=Inclusive+Sans:ital,wght@0,300..700;1,300..700&display=swap');
html {
--bg-color: rgb(20, 153, 84);
font-family: "Inclusive Sans", sans-serif;
color: white;
text-transform: lowercase;
box-sizing: border-box;
background-color: var(--bg-color);
width: 100%;
scroll-behavior: smooth;
.light {
--color-primary: white;
--bg-color: rgb(20, 153, 84);
}
.dark {
--color-primary: white;
--bg-color: black;
}
html {
font-family: 'Inclusive Sans', sans-serif;
color: white;
font-weight: 300;
body {
width: 100%;
box-sizing: border-box;
background-color: var(--bg-color);
scroll-behavior: smooth;
padding: 2rem;
}
header {
width: 100%;
position: fixed;
height: max-content;
bottom: 0;
padding-left: 2rem;
& h1 {
font-weight: 500;
border-top: solid 1px white;
font-size: 8rem;
background-color: var(--bg-color);
letter-spacing: 0.6rem;
line-height: 7rem;
}
text-transform: lowercase;
}
.sticky-container {
position: -webkit-sticky;
position: sticky;
top: 2rem;
}
h2 {
font-size: 1.1rem;
.btn__theme {
all: unset;
margin-top: 2rem;
cursor: pointer;
display: flex;
align-items: baseline;
gap: 0.5rem;
}
.hero {
height: 100vh;
padding: 2rem 0rem;
--margin: 3rem;
& h1 {
padding-bottom: var(--margin);
margin-bottom: var(--margin);
font-size: 9rem;
font-weight: 500;
text-decoration: none;
border-bottom: solid 2px white;
}
& .subtitle {
display: flex;
flex-direction: row;
& > p:last-child {
margin-left: auto;
justify-self: flex-end;
width: fit-content;
}
}
& p {
margin-top: 0;
font-size: 1.5rem;
width: fit-content;
& i {
font-style: italic;
}
}
& a {
display: block;
margin-top: var(--margin);
text-decoration: none;
& i {
font-size: 3rem;
font-weight: 300;
}
}
}
p {
line-height: 1.3rem;
}
a {
color: var(--color-primary);
}
h1 {
text-decoration: underline;
margin-bottom: 1rem;
}
main {
display: grid;
grid-template-columns: 1fr 3fr;
gap: 2rem;
}
nav {
& ul {
display: flex;
flex-direction: column;
gap: 1rem;
margin-bottom: 2rem;
margin-top: 2rem;
& ul {
display: flex;
flex-direction: column;
gap: 1rem;
/* margin-bottom: 2rem; */
}
}
& a {
color: white;
text-decoration: none;
font-weight: 400;
letter-spacing: 0.15rem;
}
& a {
color: white;
}
}
section {
position: absolute;
left: 50%;
/* max-width: 68ch; */
padding: 1rem 2rem 42vh 0;
z-index: -1;
& h2 {
margin-bottom: 3rem;
margin-top: 1rem;
position: relative;
left: -2rem;
text-decoration: underline;
}
& h2 {
display: none;
color: red;
/* margin-bottom: 3rem; */
margin-top: 1rem;
position: relative;
text-decoration: underline;
}
}
article {
display: grid;
grid-template-columns: 2fr 3fr;
gap: 0.7rem;
}
article h1 {
font-size: 5rem;
font-style: italic;
margin-bottom: 1rem;
&::before {
content: '#'
}
text-decoration: underline;
margin-bottom: 1rem;
color: white;
&::before {
content: '#';
}
}
article+article {
margin-top: 5rem;
article + article {
margin-top: 5rem;
}
article+h2 {
margin-top: 6rem;
article + h2 {
margin-top: 6rem;
}
article p {
font-size: 1.1rem;
line-height: 1.3rem;
/* font-weight: 400; */
&+p {
margin-top: 0.8rem;
}
}
& + p {
margin-top: 0.6rem;
}
}

View file

@ -1,7 +1,9 @@
<script lang="ts">
import '$lib/styles/styles.css';
import 'remixicon/fonts/remixicon.css';
let { children } = $props();
</script>
<div>
<div class="app-container">
{@render children()}
</div>

View file

@ -1,38 +1,82 @@
<script module>
/* Types */
type t = string;
</script>
<script lang="ts">
import '$lib/styles/styles.css';
import Article from '$lib/components/Article.svelte';
let { data } = $props();
const handlers = {
toggleTheme: (event: MouseEvent) => {
const html = document.documentElement;
if (html.classList.contains('light')) {
html.classList.remove('light');
html.classList.add('dark');
} else {
html.classList.remove('dark');
html.classList.add('light');
}
}
};
$inspect(data.documents);
</script>
<header>
<h1>Alliances Transcoloniales</h1>
<nav>
<ul>
<li><a href="#evenements">Événements</a></li>
<li><a href="#archives">Archives</a></li>
<li><a href="#principes">Déclaration de principes</a></li>
<li><a href="#bibliographie">Bibliographie sélective</a></li>
</ul>
</nav>
</header>
<header class="hero">
<h1>alliances transcoloniales</h1>
<div class="subtitle">
<p>arts. sciences. décolonisation.</p>
<p>université de <i>soit-disant</i> montréal.</p>
<!--<p>université de <i>soit-disant</i> <s>montréal</s>.</p>-->
</div>
<section>
<h2 id="evenements">Événements</h2>
{#each data.documents as d}
<Article document={d} />
{/each}
<h2 id="archives">Archives</h2>
<h2 id="principes">Déclaration de principes</h2>
<h2 id="bibliographie">Bibliographie sélective</h2>
<article>
<p>
Retrouvez ressources bibliographiques partagées par les intervenants de nos différents
événements sur le <a
href="https://www.zotero.org/groups/5871768/alliances-transcoloniales/library">Zotero</a
<a href="#title" aria-label="scroll to main content">
<i class="ri-arrow-down-line"></i>
</a>
</header>
<main>
<header>
<div class="sticky-container">
<h1 id="title"><a href="/">Alliances Transcoloniales</a></h1>
<p>
Alliances Transcoloniales est une série dévénements (#) souhaitant porter une réflexion
critique, à la lumière de lart et du cinéma, aux des questions doppression et de
subalternité, passées et actuelles, vécues par différentes communautés à plusieurs endroits
de la planète en adoptant une perspective transcolonialiste.
</p>
<nav>
<ul>
<li><a href="#evenements">Événements</a></li>
<li><a href="#archives">Archives</a></li>
<li><a href="#principes">Déclaration de principes</a></li>
<li><a href="#bibliographie">Bibliographie sélective</a></li>
</ul>
</nav>
<button class="btn__theme" onclick={handlers.toggleTheme}
><i class="ri-contrast-fill"></i>
<p>changer de thème</p></button
>
des <i>Alliances Transcoloniales</i>
</p>
</article>
</section>
</div>
</header>
<section>
<h2 id="evenements">Événements</h2>
{#each data.documents as d}
<Article document={d} />
{/each}
<h2 id="archives">Archives</h2>
<h2 id="principes">Déclaration de principes</h2>
<h2 id="bibliographie">Bibliographie sélective</h2>
<article>
<p>
Retrouvez ressources bibliographiques partagées par les intervenants de nos différents
événements sur le <a
href="https://www.zotero.org/groups/5871768/alliances-transcoloniales/library">Zotero</a
>
des <i>Alliances Transcoloniales</i>.
</p>
</article>
</section>
</main>

View file

@ -1,6 +1,6 @@
export const load = async () => {
const documents = import.meta.glob('$lib/content/events/*.md', { eager: true })
return {
documents: Object.values(documents)
}
}
const documents = import.meta.glob('$lib/content/events/*.md', { eager: true });
return {
documents: Object.values(documents)
};
};