first commit
1
.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.DS_Store
|
||||
18
README.md
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
|
||||
|
||||
HTML paged.js
|
||||
|
||||
|
||||
```
|
||||
pandoc --defaults src/files.yaml --template=assets/template.html --metadata-file src/meta.yaml --lua-filter=assets/add_section_ids.lua -o index.html
|
||||
```
|
||||
|
||||
|
||||
PDF plus léger:
|
||||
|
||||
```
|
||||
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/printer -dNOPAUSE -dQUIET -dBATCH -sOutputFile=portfolio-compress.pdf portfolio.pdf
|
||||
```
|
||||
|
||||
|
||||
|
||||
19
assets/README.md
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
|
||||
|
||||
HTML paged.js
|
||||
|
||||
```
|
||||
pandoc --template=assets/template.html --toc -o output.html input.md
|
||||
```
|
||||
|
||||
|
||||
|
||||
PDF plus léger:
|
||||
|
||||
```
|
||||
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/printer -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
49
assets/add_section_ids.lua
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
local filenames = PANDOC_STATE.input_files or {}
|
||||
|
||||
function Pandoc(doc)
|
||||
local blocks = {}
|
||||
|
||||
-- Check if input files are available
|
||||
if not filenames or #filenames == 0 then
|
||||
io.stderr:write("Error: No input files found in PANDOC_STATE.input_files\n")
|
||||
return doc
|
||||
end
|
||||
|
||||
-- Process each file independently
|
||||
for _, filename in ipairs(filenames) do
|
||||
-- Extract the ID from the filename (the name without the extension)
|
||||
local section_id = filename:match("([^/]+)%.md$")
|
||||
local section_class = ""
|
||||
|
||||
-- Check if the filename contains "portfolio"
|
||||
if filename:match("portfolio") then
|
||||
section_class = " class=\"portfolio-group\""
|
||||
end
|
||||
|
||||
-- Add a section for each file with the optional class
|
||||
table.insert(blocks, pandoc.RawBlock("html", "<section id=\"" .. section_id .. "\"" .. section_class .. ">"))
|
||||
|
||||
-- Read the content of the file as raw text
|
||||
local file = io.open(filename, "r")
|
||||
if not file then
|
||||
io.stderr:write("Error: Unable to read file " .. filename .. "\n")
|
||||
return doc
|
||||
end
|
||||
local file_content = file:read("*all")
|
||||
file:close()
|
||||
|
||||
-- Convert the Markdown content to Pandoc blocks
|
||||
local file_doc = pandoc.read(file_content, 'markdown')
|
||||
|
||||
-- Add the blocks from the file to the section
|
||||
for _, block in ipairs(file_doc.blocks) do
|
||||
table.insert(blocks, block)
|
||||
end
|
||||
|
||||
-- Close the section
|
||||
table.insert(blocks, pandoc.RawBlock("html", "</section>"))
|
||||
end
|
||||
|
||||
-- Return the modified document
|
||||
return pandoc.Pandoc(blocks, doc.meta)
|
||||
end
|
||||
BIN
assets/fonts/Area/AreaNormal-Black.woff
Normal file
BIN
assets/fonts/Area/AreaNormal-Black.woff2
Normal file
BIN
assets/fonts/Area/AreaNormal-BlackItalic.woff
Normal file
BIN
assets/fonts/Area/AreaNormal-BlackItalic.woff2
Normal file
BIN
assets/fonts/Area/AreaNormal-Bold.woff
Normal file
BIN
assets/fonts/Area/AreaNormal-Bold.woff2
Normal file
BIN
assets/fonts/Area/AreaNormal-BoldItalic.woff
Normal file
BIN
assets/fonts/Area/AreaNormal-BoldItalic.woff2
Normal file
35
assets/fonts/Area/stylesheet.css
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
@font-face {
|
||||
font-family: 'Area Normal';
|
||||
src: url('AreaNormal-Bold.woff2') format('woff2'),
|
||||
url('AreaNormal-Bold.woff') format('woff');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Area Normal';
|
||||
src: url('AreaNormal-BoldItalic.woff2') format('woff2'),
|
||||
url('AreaNormal-BoldItalic.woff') format('woff');
|
||||
font-weight: normal;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Area Normal';
|
||||
src: url('AreaNormal-Black.woff2') format('woff2'),
|
||||
url('AreaNormal-Black.woff') format('woff');
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Area Normal';
|
||||
src: url('AreaNormal-BlackItalic.woff2') format('woff2'),
|
||||
url('AreaNormal-BlackItalic.woff') format('woff');
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
}
|
||||
BIN
assets/fonts/Geist-mono/GeistMono-Black.woff2
Normal file
BIN
assets/fonts/Geist-mono/GeistMono-BlackItalic.woff2
Normal file
BIN
assets/fonts/Geist-mono/GeistMono-Bold.woff2
Normal file
BIN
assets/fonts/Geist-mono/GeistMono-BoldItalic.woff2
Normal file
BIN
assets/fonts/Geist-mono/GeistMono-ExtraBold.woff2
Normal file
BIN
assets/fonts/Geist-mono/GeistMono-ExtraBoldItalic.woff2
Normal file
BIN
assets/fonts/Geist-mono/GeistMono-ExtraLight.woff2
Normal file
BIN
assets/fonts/Geist-mono/GeistMono-ExtraLightItalic.woff2
Normal file
BIN
assets/fonts/Geist-mono/GeistMono-Italic.woff2
Normal file
BIN
assets/fonts/Geist-mono/GeistMono-Italic[wght].woff2
Normal file
BIN
assets/fonts/Geist-mono/GeistMono-Light.woff2
Normal file
BIN
assets/fonts/Geist-mono/GeistMono-LightItalic.woff2
Normal file
BIN
assets/fonts/Geist-mono/GeistMono-Medium.woff2
Normal file
BIN
assets/fonts/Geist-mono/GeistMono-MediumItalic.woff2
Normal file
BIN
assets/fonts/Geist-mono/GeistMono-Regular.woff2
Normal file
BIN
assets/fonts/Geist-mono/GeistMono-SemiBold.woff2
Normal file
BIN
assets/fonts/Geist-mono/GeistMono-SemiBoldItalic.woff2
Normal file
BIN
assets/fonts/Geist-mono/GeistMono-Thin.woff2
Normal file
BIN
assets/fonts/Geist-mono/GeistMono-ThinItalic.woff2
Normal file
BIN
assets/fonts/Geist-mono/GeistMono[wght].woff2
Normal file
180
assets/fonts/Geist-mono/stylesheet.css
Normal file
|
|
@ -0,0 +1,180 @@
|
|||
@font-face {
|
||||
font-family: 'Geist Mono';
|
||||
src: url('GeistMono-Italic.woff2') format('woff2'),
|
||||
url('GeistMono-Italic.woff') format('woff');
|
||||
font-weight: normal;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Geist Mono';
|
||||
src: url('GeistMono-ThinItalic.woff2') format('woff2'),
|
||||
url('GeistMono-ThinItalic.woff') format('woff');
|
||||
font-weight: 100;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Geist Mono';
|
||||
src: url('GeistMono-ExtraLightItalic.woff2') format('woff2'),
|
||||
url('GeistMono-ExtraLightItalic.woff') format('woff');
|
||||
font-weight: 200;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Geist Mono';
|
||||
src: url('GeistMono-SemiBold.woff2') format('woff2'),
|
||||
url('GeistMono-SemiBold.woff') format('woff');
|
||||
font-weight: 600;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Geist Mono';
|
||||
src: url('GeistMono-Regular.woff2') format('woff2'),
|
||||
url('GeistMono-Regular.woff') format('woff');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Geist Mono';
|
||||
src: url('GeistMono-SemiBoldItalic.woff2') format('woff2'),
|
||||
url('GeistMono-SemiBoldItalic.woff') format('woff');
|
||||
font-weight: 600;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Geist Mono';
|
||||
src: url('GeistMono-Italic.woff2') format('woff2'),
|
||||
url('GeistMono-Italic.woff') format('woff');
|
||||
font-weight: normal;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Geist Mono';
|
||||
src: url('GeistMono-BoldItalic.woff2') format('woff2'),
|
||||
url('GeistMono-BoldItalic.woff') format('woff');
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Geist Mono';
|
||||
src: url('GeistMono-MediumItalic.woff2') format('woff2'),
|
||||
url('GeistMono-MediumItalic.woff') format('woff');
|
||||
font-weight: 500;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Geist Mono';
|
||||
src: url('GeistMono-BlackItalic.woff2') format('woff2'),
|
||||
url('GeistMono-BlackItalic.woff') format('woff');
|
||||
font-weight: 900;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Geist Mono';
|
||||
src: url('GeistMono-Thin.woff2') format('woff2'),
|
||||
url('GeistMono-Thin.woff') format('woff');
|
||||
font-weight: 100;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Geist Mono';
|
||||
src: url('GeistMono-Bold.woff2') format('woff2'),
|
||||
url('GeistMono-Bold.woff') format('woff');
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Geist Mono';
|
||||
src: url('GeistMono-LightItalic.woff2') format('woff2'),
|
||||
url('GeistMono-LightItalic.woff') format('woff');
|
||||
font-weight: 300;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Geist Mono';
|
||||
src: url('GeistMono-ExtraBoldItalic.woff2') format('woff2'),
|
||||
url('GeistMono-ExtraBoldItalic.woff') format('woff');
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Geist Mono';
|
||||
src: url('GeistMono-Black.woff2') format('woff2'),
|
||||
url('GeistMono-Black.woff') format('woff');
|
||||
font-weight: 900;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Geist Mono';
|
||||
src: url('GeistMono-ExtraBold.woff2') format('woff2'),
|
||||
url('GeistMono-ExtraBold.woff') format('woff');
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Geist Mono';
|
||||
src: url('GeistMono-ExtraLight.woff2') format('woff2'),
|
||||
url('GeistMono-ExtraLight.woff') format('woff');
|
||||
font-weight: 200;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Geist Mono';
|
||||
src: url('GeistMono-Regular.woff2') format('woff2'),
|
||||
url('GeistMono-Regular.woff') format('woff');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Geist Mono';
|
||||
src: url('GeistMono-Medium.woff2') format('woff2'),
|
||||
url('GeistMono-Medium.woff') format('woff');
|
||||
font-weight: 500;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Geist Mono';
|
||||
src: url('GeistMono-Light.woff2') format('woff2'),
|
||||
url('GeistMono-Light.woff') format('woff');
|
||||
font-weight: 300;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
362
assets/style.css
Normal file
|
|
@ -0,0 +1,362 @@
|
|||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-font-smoothing: antialiased;
|
||||
-o-font-smoothing: antialiased
|
||||
}
|
||||
|
||||
|
||||
body{
|
||||
font-family: 'Area Normal';
|
||||
font-size: 12px;
|
||||
line-height: 1.5em;
|
||||
--small: 9px;
|
||||
--light: #bfbfbf;
|
||||
--title: 20px;
|
||||
--mono: 'Geist Mono';
|
||||
--table-w: 760px;
|
||||
}
|
||||
|
||||
a{
|
||||
color: currentColor;
|
||||
}
|
||||
|
||||
img{ width: 100%; }
|
||||
|
||||
|
||||
@page {
|
||||
size: A4 landscape;
|
||||
margin-left: 14mm;
|
||||
margin-right: 14mm;
|
||||
margin-top: 8mm;
|
||||
margin-bottom: 14mm;
|
||||
@bottom-left {
|
||||
content: element(titleRunning);
|
||||
|
||||
|
||||
|
||||
}
|
||||
@bottom-right-corner{
|
||||
content: counter(page) "/" counter(pages);
|
||||
/* font-size: 8px; */
|
||||
color: var(--light);
|
||||
text-align: left;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#note-intention,
|
||||
#devis,
|
||||
#equipe,
|
||||
#details{
|
||||
break-before: page;
|
||||
break-after: page;
|
||||
}
|
||||
|
||||
|
||||
header{
|
||||
margin-top: 20em;
|
||||
margin-bottom: 3em;
|
||||
}
|
||||
header h1{
|
||||
font-size: 6em;
|
||||
line-height: 1em;
|
||||
}
|
||||
|
||||
header h2{
|
||||
margin-top: 0.5em;
|
||||
}
|
||||
|
||||
|
||||
#studio-variable{
|
||||
break-after: page;
|
||||
max-width: 56ch;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
.infos{
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
gap: 1ch;
|
||||
}
|
||||
|
||||
|
||||
section > h2{
|
||||
font-weight: bold;
|
||||
font-size: var(--title);
|
||||
break-after: none;
|
||||
margin-bottom: 2em;
|
||||
}
|
||||
|
||||
section > h2::before{
|
||||
content: '● ';
|
||||
}
|
||||
|
||||
p{
|
||||
margin: .75em 0;
|
||||
widows: 3;
|
||||
orphans: 3;
|
||||
}
|
||||
|
||||
h3{
|
||||
font-size: 1em;
|
||||
margin-top: 2em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
|
||||
|
||||
ul{
|
||||
list-style-type: square;
|
||||
margin-left: 2em;
|
||||
}
|
||||
|
||||
footer{
|
||||
position: running(titleRunning);
|
||||
/* font-size: 8px; */
|
||||
color: var(--light);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@media screen, pagedjs-ignore{
|
||||
body{
|
||||
padding: 20px;
|
||||
background-color: #efefef
|
||||
}
|
||||
.pagedjs_page{
|
||||
outline: 1px solid #cfcfcf;
|
||||
background-color: white;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.pagedjs_pages{
|
||||
margin: 0 auto;
|
||||
width: var(--pagedjs-width-right);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* NOTE INTENTION -------------------------------------------- */
|
||||
|
||||
#note-intention{
|
||||
columns: 2;
|
||||
column-fill: auto;
|
||||
column-gap: 2.5em;
|
||||
|
||||
}
|
||||
|
||||
#note-intention h2{
|
||||
column-span: all;
|
||||
}
|
||||
|
||||
#note-intention h2 + p{
|
||||
margin-top: 0em;
|
||||
}
|
||||
|
||||
|
||||
/* DEVIS -------------------------------------------- */
|
||||
|
||||
|
||||
|
||||
#devis h2 + p{
|
||||
|
||||
width: var(--table-w);
|
||||
text-align: right;
|
||||
margin-bottom: 1.5em;
|
||||
}
|
||||
|
||||
#devis table{
|
||||
width: 760px;
|
||||
/* font-family: var(--mono); */
|
||||
border-collapse: collapse;
|
||||
border-bottom: 1px solid #cfcfcf;
|
||||
}
|
||||
|
||||
#devis table thead th{
|
||||
background-color: #efefef;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#devis table thead th, td{
|
||||
padding: 5px 1ch;
|
||||
}
|
||||
|
||||
#devis table thead th:nth-of-type(2),
|
||||
#devis table thead th:nth-of-type(3),
|
||||
#devis table td:nth-of-type(2),
|
||||
#devis table td:nth-of-type(3){
|
||||
text-align: right!important;
|
||||
}
|
||||
|
||||
#devis table tr:nth-of-type(even){
|
||||
background-color: #efefef;
|
||||
|
||||
}
|
||||
|
||||
#devis table .indent{
|
||||
display: inline-block;
|
||||
width: 4ch;
|
||||
}
|
||||
|
||||
|
||||
#devis #total table{
|
||||
/* border-top: 1px solid #cfcfcf; */
|
||||
width: 400px;
|
||||
margin-left: calc(var(--table-w) - 400px);
|
||||
margin-top: 2em;
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
#devis #total th,
|
||||
#devis #total td{
|
||||
background-color: transparent!important;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#devis #total tr:nth-of-type(1){
|
||||
color: var(--light);
|
||||
}
|
||||
|
||||
|
||||
#devis #total tr:nth-of-type(2) td{
|
||||
background-color: transparent!important;
|
||||
}
|
||||
|
||||
|
||||
#devis #total + p{
|
||||
margin-top: 3em;
|
||||
font-size: var(--small);
|
||||
line-height: 1.5em;
|
||||
max-width: 40ch;
|
||||
margin-left: calc(var(--table-w) - 400px);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* PLANNING & LIVRABLES ---------------------------------------- */
|
||||
|
||||
|
||||
#livrables{
|
||||
margin-top: 5em;
|
||||
}
|
||||
|
||||
|
||||
/* EQUIPE --------------------------------------------------- */
|
||||
|
||||
#equipe .people{
|
||||
min-height: 160px;
|
||||
break-inside: avoid;
|
||||
margin-top: 6em;
|
||||
margin-bottom: 6em;
|
||||
padding-left: 220px;
|
||||
position: relative;
|
||||
margin-left: 5em;
|
||||
}
|
||||
|
||||
|
||||
#equipe figure{
|
||||
width: 160px;
|
||||
position: absolute;
|
||||
left: 0px;
|
||||
|
||||
}
|
||||
|
||||
#equipe figure figcaption{
|
||||
display: none;
|
||||
}
|
||||
|
||||
#equipe .people h1{
|
||||
font-size: var(--title);
|
||||
line-height: 1.2em;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
|
||||
#equipe .people p{
|
||||
max-width: 52ch;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* PORTFOLIO intro-------------------------------------------- */
|
||||
|
||||
#portfolio-introduction > h2{
|
||||
margin-bottom: 0px;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* PORTFOLIO 1img -------------------------------------------- */
|
||||
|
||||
.portfolio-group{
|
||||
display: grid;
|
||||
grid-template-columns: 500px 1fr;
|
||||
grid-column-gap: 2em;
|
||||
grid-template-rows: auto auto 1fr;
|
||||
break-inside: avoid;
|
||||
margin-bottom: 3em;
|
||||
}
|
||||
|
||||
.portfolio-group figure{
|
||||
grid-column: 1;
|
||||
grid-row: 1/4;
|
||||
margin: 0;
|
||||
border: 1px solid #cfcfcf;
|
||||
aspect-ratio: 5/3;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.portfolio-group figure figcaption{ display: none; }
|
||||
|
||||
.portfolio-group figure img{
|
||||
width: 100%;
|
||||
display: flex;
|
||||
|
||||
}
|
||||
|
||||
.portfolio-group h1{
|
||||
grid-column: 2;
|
||||
grid-row: 1;
|
||||
font-size: var(--title);
|
||||
line-height: 1.2em;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.portfolio-group p{
|
||||
grid-column: 2;
|
||||
grid-row: 2;
|
||||
width: 54ch;
|
||||
}
|
||||
|
||||
.portfolio-group .details{
|
||||
grid-column: 2;
|
||||
grid-row: 3;
|
||||
margin-top: 0.75em;
|
||||
}
|
||||
|
||||
|
||||
.portfolio-group .details dl{
|
||||
display: flex;
|
||||
margin-bottom: 0.5ch;
|
||||
|
||||
}
|
||||
|
||||
.portfolio-group .details dt{
|
||||
width: 12ch;
|
||||
font-weight: bold;
|
||||
flex: 0 0 auto;
|
||||
}
|
||||
|
||||
|
||||
42
assets/template.html
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>$title$</title>
|
||||
<script src="https://unpkg.com/pagedjs/dist/paged.polyfill.js"></script>
|
||||
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="assets/style.css">
|
||||
<link rel="stylesheet" type="text/css" href="assets/fonts/Area/stylesheet.css">
|
||||
<link rel="stylesheet" type="text/css" href="assets/fonts/Geist-mono/stylesheet.css">
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<aside class="infos">
|
||||
<p>$client$</p>
|
||||
<p>$date$</p>
|
||||
<p>$contact$</p>
|
||||
</aside>
|
||||
|
||||
<header>
|
||||
<h1>$title$</h1>
|
||||
<h2>$baseline$</h2>
|
||||
</header>
|
||||
|
||||
<footer>
|
||||
<p><p>$footer$</p></p>
|
||||
</footer>
|
||||
|
||||
|
||||
$body$
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
BIN
images/acau.png
Normal file
|
After Width: | Height: | Size: 7.1 MiB |
BIN
images/actuel-inactuel.png
Normal file
|
After Width: | Height: | Size: 493 KiB |
BIN
images/chromobase.png
Normal file
|
After Width: | Height: | Size: 2.8 MiB |
BIN
images/cultures-visuelles.png
Normal file
|
After Width: | Height: | Size: 2.2 MiB |
BIN
images/decarb-one.png
Normal file
|
After Width: | Height: | Size: 350 KiB |
BIN
images/esaj.png
Normal file
|
After Width: | Height: | Size: 2.6 MiB |
BIN
images/medialab.png
Normal file
|
After Width: | Height: | Size: 3.5 MiB |
BIN
images/repenser-les-heros.png
Normal file
|
After Width: | Height: | Size: 2.9 MiB |
BIN
images/studio-variable_Adrien.jpg
Normal file
|
After Width: | Height: | Size: 564 KiB |
BIN
images/studio-variable_Julie.jpg
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
images/wysiwyg.png
Normal file
|
After Width: | Height: | Size: 452 KiB |
801
index.html
Normal file
|
|
@ -0,0 +1,801 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Studio Variable</title>
|
||||
<script src="https://unpkg.com/pagedjs/dist/paged.polyfill.js"></script>
|
||||
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="assets/style.css">
|
||||
<link rel="stylesheet" type="text/css" href="assets/fonts/Area/stylesheet.css">
|
||||
<link rel="stylesheet" type="text/css" href="assets/fonts/Geist-mono/stylesheet.css">
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<aside class="infos">
|
||||
<p>Proposition RésIn</p>
|
||||
<p>6 octobre 2025</p>
|
||||
<p>contact@studio-varible.com</p>
|
||||
</aside>
|
||||
|
||||
<header>
|
||||
<h1>Studio Variable</h1>
|
||||
<h2>Design × code</h2>
|
||||
</header>
|
||||
|
||||
<footer>
|
||||
<p><p>Studio Variable – Proposition RésIn</p></p>
|
||||
</footer>
|
||||
|
||||
|
||||
<section id="studio-variable">
|
||||
<p>Créé en juin 2025 et basé à Paris, Studio Variable conjugue
|
||||
<strong>design graphique, design d’interface et développement web
|
||||
full-stack</strong>. Œuvrant principalement avec le secteur de la
|
||||
recherche, de l’écologie et de la culture, il collabore aussi bien
|
||||
avec de grands comptes qu’avec des indépendants.</p>
|
||||
<p>Fondé par <strong>Julie Blanc</strong> (designer-développeuse et
|
||||
chercheuse en ergonomie) et <strong>Adrien Payet</strong>
|
||||
(designer-développeur issu de la philosophie), Studio Variable
|
||||
développe une approche formelle et technique qui concilie
|
||||
<strong>ergonomie, sobriété, accessibilité et respect de la vie
|
||||
privée</strong>.</p>
|
||||
<p>Nous sommes spécialisés dans la publication à source unique en
|
||||
<strong>web-to-print</strong>. Nous privilégions les projets ouverts
|
||||
et engagés, avec une forte culture du logiciel libre et de l’open
|
||||
source.</p>
|
||||
</section>
|
||||
<section id="note-intention">
|
||||
<h2 id="note-intention">Note intention</h2>
|
||||
<p>Notre intervention se concentre sur une double approche, à la
|
||||
fois graphique et technique, pensée comme un tout cohérent. Nous
|
||||
concevons le design non pas comme une couche séparée mais comme un
|
||||
travail mené directement dans le code, afin que chaque choix
|
||||
esthétique s’accompagne d’une réflexion technique et ergonomique.
|
||||
Les premiers prototypes seront donc réalisés en HTML et CSS, pour
|
||||
permettre de valider rapidement des maquettes fonctionnelles,
|
||||
accessibles et déjà proches de la version finale. Cette méthode
|
||||
réduit les écarts entre intention et réalisation, et permet
|
||||
d’intégrer dès le départ nos principes d’écoconception et
|
||||
d’accessibilité.</p>
|
||||
<p><strong>Sur le plan graphique</strong>, nous portons une
|
||||
attention particulière à la lisibilité et à l’harmonisation des
|
||||
contenus. L’hétérogénéité des profils proposés dans l’annuaire
|
||||
(parfois très succincts, parfois très denses) sera prise en compte
|
||||
pour construire des pages qui restent esthétiques et équilibrées.
|
||||
Nous privilégions <strong>une esthétique sobre, sur mesure, où la
|
||||
typographie et les contrastes assurent une hiérarchie
|
||||
claire</strong>, afin d’éviter les ruptures visuelles dans
|
||||
l’annuaire. L’arbre des compétences, qui constitue un outil central
|
||||
de navigation et de recherche, fera l’objet d’une refonte spécifique
|
||||
: nous souhaitons en améliorer la lisibilité et l’exploration, en le
|
||||
rendant plus visible et plus interactif, tout en veillant à une
|
||||
utilisation fluide sur mobile comme sur ordinateur. Notre objectif
|
||||
est de concevoir une interface qui mette en valeur les compétences
|
||||
et facilite réellement la recherche dans l’annuaire, sans surcharge
|
||||
graphique inutile.</p>
|
||||
<p><strong>Sur le plan technique</strong>, nous proposons une
|
||||
architecture simple : <strong>HTML, SCSS et JavaScript
|
||||
vanilla</strong>, complétés si nécessaire par une librairie légère
|
||||
comme Alpine.js pour la recherche réactive. Cette sobriété garantit
|
||||
la compatibilité avec la licence libre du projet, facilite la
|
||||
maintenance et limite l’empreinte écologique du site. Nous
|
||||
travaillerons à partir de l’existant, que ce soit le code ou l’image
|
||||
Docker déjà utilisée, et nous engageons à adapter nos développements
|
||||
à vos contraintes sans surcomplexification. En fonction de vos
|
||||
préférence, nous travaillerons soit sur une branch du répôt Git
|
||||
existant soit sur une copie de ce repo.</p>
|
||||
<p>Notre façon de travailler repose sur des <strong>allers-retours
|
||||
réguliers</strong> avec vous : nous définirons des étapes
|
||||
intermédiaires pour valider les choix au fur et à mesure, plutôt que
|
||||
de tout livrer en une fois. Cela permet d’ajuster le projet
|
||||
en fonction de vos retours et des contraintes qui pourraient
|
||||
émerger.</p>
|
||||
<p>Notre force réside dans la complémentarité de nos profils :
|
||||
designers et développeur·ses à la fois, nous avons l’habitude de
|
||||
traverser les deux champs de compétences et de <strong>faire
|
||||
dialoguer les logiques formelles et techniques</strong>. En tant que
|
||||
studio, nous défendons une approche sur-mesure, attentive aux usages
|
||||
concrets, à la sobriété des moyens employés et au respect de la vie
|
||||
privée. Cette philosophie guidera l’ensemble de notre intervention :
|
||||
un site léger, <br>lisible et durable, au service du réseau
|
||||
RésIn.</p>
|
||||
<h3 id="les-forces-de-notre-proposition">Les forces de notre
|
||||
proposition</h3>
|
||||
<ul>
|
||||
<li><strong>Des maquettes directement codées en HTML et
|
||||
CSS</strong>, plutôt que figées dans un outil comme Figma. Cette
|
||||
approche permet d’adopter une « mentalité wev » dès le maquettage.
|
||||
Elle garantie la faisabilité technique du design, la fidélité des
|
||||
maquettes par rapport au résultat final, réduit les allers-retours
|
||||
entre design et développement et accélère nettement
|
||||
l’intégration.</li>
|
||||
<li><strong>Un travail mené au plus près du code existant</strong>,
|
||||
afin de faciliter l’intégration de nos développements, d’assurer la
|
||||
continuité technique et de favoriser des échanges simples et
|
||||
efficaces avec vous.</li>
|
||||
<li><strong>Une démarche d’écoconception et d’accessibilité
|
||||
assumée</strong>, qui se traduit par un design et un code légers, un
|
||||
recours limité à JavaScript, un HTML bien construit répondant aux
|
||||
normes d’accessibilité, l’utlisation de variable fonts et des
|
||||
fallback bien pensé. Bref, une attention constante à la performance
|
||||
et à la sobriété des ressources.</li>
|
||||
<li><strong>Une refonte graphique pensée autour de l’arbre des
|
||||
compétences</strong>, conçu comme un élément central et progressif
|
||||
de navigation : il sera placé visuellement à proximité du moteur de
|
||||
recherche sur desktop, déployé en accordéon sur mobile, et enrichi
|
||||
de fonctions de multi-filtrage. <br>Selon la pertinence, un fil
|
||||
d’Ariane (breadcrumb) pour contextualiser <br>les profils
|
||||
affichés.</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="devis">
|
||||
<h2 id="devis">Devis</h2>
|
||||
<p>→ Taux journalier: 800€ HT</p>
|
||||
<table>
|
||||
<colgroup>
|
||||
<col style="width: 75%" />
|
||||
<col style="width: 11%" />
|
||||
<col style="width: 12%" />
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr class="header">
|
||||
<th><strong>Tâche</strong></th>
|
||||
<th><strong>Jours</strong></th>
|
||||
<th><strong>€ (HT)</strong></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td>Création du logo</td>
|
||||
<td>1</td>
|
||||
<td>800</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>Identité visuelle avec mockup d’une page responsive type
|
||||
(maquettes HTML & CSS)</td>
|
||||
<td>2</td>
|
||||
<td>1600</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>UI arbre de compétences (explorable, filtrage)</td>
|
||||
<td>1.5</td>
|
||||
<td>1200</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>Développement front-end de toutes les pages responsives</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td><span class="indent"></span>→ Home page</td>
|
||||
<td>1</td>
|
||||
<td>800</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td><span class="indent"></span>→ Pages listes et de tri</td>
|
||||
<td>1.5</td>
|
||||
<td>1200</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td><span class="indent"></span>→ Pages individuelles</td>
|
||||
<td>1.5</td>
|
||||
<td>1200</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td><span class="indent"></span>→ Pages de contenu: présentation,
|
||||
ressources, etc.</td>
|
||||
<td>0.5</td>
|
||||
<td>400</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td><span class="indent"></span>→ Intégration au code existant</td>
|
||||
<td>30.00%</td>
|
||||
<td>1080</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>Mise en place de la recherche réactive</td>
|
||||
<td>0.5</td>
|
||||
<td>400</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>Révisions UI et petits ajustements</td>
|
||||
<td>0.5</td>
|
||||
<td>400</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>Tests cross-device, optimisation HTML/CSS/JS et
|
||||
accessibilité</td>
|
||||
<td>0.5</td>
|
||||
<td>400</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>Gestion de projet</td>
|
||||
<td>10.00%</td>
|
||||
<td>948</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div id="total">
|
||||
<table>
|
||||
<thead>
|
||||
<tr class="header">
|
||||
<th>Sous total HT</th>
|
||||
<th>10428</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td>TVA 20 %</td>
|
||||
<td>2085.6</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>Total TTC</td>
|
||||
<td>12513.6</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<p>Note : Si votre structure ne récupère pas la TVA et que cela
|
||||
constitue une contrainte budgétaire, nous vous invitons à nous en
|
||||
faire part afin d’en discuter.</p>
|
||||
</section>
|
||||
<section id="planning">
|
||||
<h2 id="planning-phases">Planning & phases</h2>
|
||||
<ul>
|
||||
<li>Démarrage : <strong>dès sélection</strong> (idéalement semaine
|
||||
du 13 octobre 2025).</li>
|
||||
<li>Rendu final : <strong>8 décembre 2025</strong>.</li>
|
||||
<li>Mode : itérations de 1 à 2 semaines (sprints courts).</li>
|
||||
</ul>
|
||||
<h3 id="phases">Phases</h3>
|
||||
<ul>
|
||||
<li>Semaine 1 (13–17 oct.) : Échange pour le démarrage du projet,
|
||||
accès API</li>
|
||||
<li>Semaine 2–3 (20–31 oct.) : Proposition d’identité sur maquette
|
||||
HTML/CSS statique (1 page type), avec UI arbre de compétences.
|
||||
Inclus palette de couleur + proposition logo</li>
|
||||
<li><strong>4 novembre : validation de l’identité
|
||||
proposée</strong></li>
|
||||
<li>Semaine 4–6 (3–21 nov.) : Développement front avec sprints
|
||||
<ul>
|
||||
<li>Sprint 1 — Copie du dèpôt, pipeline parallèle, audit HTML, mise
|
||||
en place SASS</li>
|
||||
<li>Sprint 2 — Intégration arbre de compétence, développement de la
|
||||
page d’acceuil et de la liste filtrables</li>
|
||||
<li>Sprint 3 — Développement et intégration des pages individuelles
|
||||
et des pages de contenus</li>
|
||||
<li>Sprint 4 — Recherche plein texte réactive et affinement de
|
||||
l’affichage filtrage multi-sélection</li>
|
||||
</ul></li>
|
||||
<li>Semaine 7 (24–28 nov.) : Révisions UI et petits ajustements.
|
||||
Validation définitive du logo.</li>
|
||||
<li>Semaine 8 (1–5 déc.) : Tests & optimisation.</li>
|
||||
<li><strong>Livraison finale</strong> : au plus tard <strong>8
|
||||
décembre 2025</strong>.</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="livrables">
|
||||
<h2 id="livrables">Livrables</h2>
|
||||
<ul>
|
||||
<li>Copie du dépôt GitHub public (AGPLv3) avec : code,
|
||||
Dockerfile</li>
|
||||
<li>Pack logo (.svg / .png multi-résolution).</li>
|
||||
<li>Maquettes codées (HTML/SCSS) si demandées</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="equipe">
|
||||
<h2 id="équipe">Équipe</h2>
|
||||
<div class="people">
|
||||
<figure>
|
||||
<img src="images/studio-variable_Julie.jpg" alt="." />
|
||||
<figcaption aria-hidden="true">.</figcaption>
|
||||
</figure>
|
||||
<h1 id="julie-blanc-chef-de-projet">Julie Blanc, chef de projet</h1>
|
||||
<p>Docteur en ergonomie et spécialiste de CSS, Julie Blanc assurera
|
||||
la chefferie de projet, le <strong>design</strong> et le
|
||||
<strong>développement front-end</strong>.</p>
|
||||
<p>Julie est designer, développeuse et chercheuse. Elle a co-fondé
|
||||
le studio Variable. Elle est chercheuse associée à la HEAD (Genève).
|
||||
Sa thèse, soutenue en 2023, porte sur l’utilisation des
|
||||
techonologies du web par les designers graphique.</p>
|
||||
</div>
|
||||
<div class="people">
|
||||
<figure>
|
||||
<img src="images/studio-variable_Adrien.jpg" alt="." />
|
||||
<figcaption aria-hidden="true">.</figcaption>
|
||||
</figure>
|
||||
<h1 id="adrien-payet">Adrien Payet</h1>
|
||||
<p>Développeur full-stack, spécialisé en design et développement de
|
||||
back-office et d’interactions front-end, Adrien apportera son appui
|
||||
pour garantir une <strong>intégration harmonieuse</strong> dans
|
||||
l’architecture et l’écosystème technique existants.</p>
|
||||
<p>Adrien étudie, enseigne et pratique la philosophie, le design et
|
||||
le code. Il a co-fondé le studio Variable. Il enseigne à l’ENSCi et
|
||||
à Paris 1.</p>
|
||||
</div>
|
||||
</section>
|
||||
<section id="portfolio-introduction" class="portfolio-group">
|
||||
<h2 id="sélection-de-projets">Sélection de projets</h2>
|
||||
</section>
|
||||
<section id="wysiwyg" class="portfolio-group">
|
||||
<h1 id="wysiwyg">WYSIWYG</h1>
|
||||
<p>Projet de recherche l’évolution des logiciels de graphisme en
|
||||
Suisse et en France (1980 - aujourd’hui)</p>
|
||||
<figure>
|
||||
<img src="images/wysiwyg.png" alt="." />
|
||||
<figcaption aria-hidden="true">.</figcaption>
|
||||
</figure>
|
||||
<div class="details">
|
||||
<dl>
|
||||
<dt>
|
||||
URL
|
||||
</dt>
|
||||
<dd>
|
||||
<a href="https://wysiwyg.ch/" target="_blank">wysiwyg.ch</a>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Secteur
|
||||
</dt>
|
||||
<dd>
|
||||
Recherche
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Client
|
||||
</dt>
|
||||
<dd>
|
||||
HEAD – Genève, Haute école d’art et de design
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Prestation(s)
|
||||
</dt>
|
||||
<dd>
|
||||
Design, développement full-stack
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Date
|
||||
</dt>
|
||||
<dd>
|
||||
2025
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
</section>
|
||||
<section id="chromobase" class="portfolio-group">
|
||||
<h1 id="chromobase">Chromobase</h1>
|
||||
<p>Base de données du projet ERC Chromotope qui explore l’impact
|
||||
culturel de l’apparition de la couleur dans l’industrie dans les
|
||||
années 1850.</p>
|
||||
<figure>
|
||||
<img src="images/chromobase.png" alt="." />
|
||||
<figcaption aria-hidden="true">.</figcaption>
|
||||
</figure>
|
||||
<div class="details">
|
||||
<dl>
|
||||
<dt>
|
||||
URL
|
||||
</dt>
|
||||
<dd>
|
||||
<a href="https://chromobase.huma-num.fr/" target="_blank">chromobase.huma-num.fr</a>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Secteur
|
||||
</dt>
|
||||
<dd>
|
||||
Recherche
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Client
|
||||
</dt>
|
||||
<dd>
|
||||
Sorbonne Université, CNAM, University of Oxford
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Prestation(s)
|
||||
</dt>
|
||||
<dd>
|
||||
Design, front-end
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Partenaire(s)
|
||||
</dt>
|
||||
<dd>
|
||||
OuestWare (développement)
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Date
|
||||
</dt>
|
||||
<dd>
|
||||
2023
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
</section>
|
||||
<section id="medialab" class="portfolio-group">
|
||||
<h1 id="médialab">médialab</h1>
|
||||
<p>Laboratoire interdisplinaire qui interroge les relations entre le
|
||||
numérique et nos sociétés.</p>
|
||||
<figure>
|
||||
<img src="images/medialab.png" alt="." />
|
||||
<figcaption aria-hidden="true">.</figcaption>
|
||||
</figure>
|
||||
<div class="details">
|
||||
<dl>
|
||||
<dt>
|
||||
URL
|
||||
</dt>
|
||||
<dd>
|
||||
<a href="https://medialab.sciencespo.fr/" target="_blank">medialab.sciencespo.fr</a>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Secteur
|
||||
</dt>
|
||||
<dd>
|
||||
Recherche
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Client
|
||||
</dt>
|
||||
<dd>
|
||||
médialab, SciencesPo
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Prestation(s)
|
||||
</dt>
|
||||
<dd>
|
||||
Design, développement front-end
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Partenaire(s)
|
||||
</dt>
|
||||
<dd>
|
||||
en collaboration avec Benjamin Benjamin Gremillon et l’équipe du
|
||||
médialab
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Date
|
||||
</dt>
|
||||
<dd>
|
||||
2019
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
</section>
|
||||
<section id="cultures-visuelles" class="portfolio-group">
|
||||
<h1 id="cultures-visuelles">Cultures visuelles</h1>
|
||||
<p>Plateforme pour le programme de recherche, intégrant une
|
||||
interface graphique an front-end pour l’édition du contenu.</p>
|
||||
<figure>
|
||||
<img src="images/cultures-visuelles.png" alt="." />
|
||||
<figcaption aria-hidden="true">.</figcaption>
|
||||
</figure>
|
||||
<div class="details">
|
||||
<dl>
|
||||
<dt>
|
||||
URL
|
||||
</dt>
|
||||
<dd>
|
||||
<a href="https://www.culturesvisuelles.org/" target="_blank">culturesvisuelles.org</a>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Secteur
|
||||
</dt>
|
||||
<dd>
|
||||
Recherche
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Client
|
||||
</dt>
|
||||
<dd>
|
||||
Université de Strasbourg
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Prestation(s)
|
||||
</dt>
|
||||
<dd>
|
||||
Design, éveloppement full-stack
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Partenaire(s)
|
||||
</dt>
|
||||
<dd>
|
||||
en collaboration avec Timothée Goguely
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Date
|
||||
</dt>
|
||||
<dd>
|
||||
2020
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
</section>
|
||||
<section id="actuel-inactuel" class="portfolio-group">
|
||||
<h1 id="actuel-inactuel">actuel-inactuel</h1>
|
||||
<p>Plateforme pour une critique des arts et des techniques.</p>
|
||||
<figure>
|
||||
<img src="images/actuel-inactuel.png" alt="." />
|
||||
<figcaption aria-hidden="true">.</figcaption>
|
||||
</figure>
|
||||
<div class="details">
|
||||
<dl>
|
||||
<dt>
|
||||
URL
|
||||
</dt>
|
||||
<dd>
|
||||
<a href="https://actuel-inactuel.fr/" target="_blank">actuel-inactuel.fr</a>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Secteur
|
||||
</dt>
|
||||
<dd>
|
||||
Recherche
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Client
|
||||
</dt>
|
||||
<dd>
|
||||
Association époque
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Prestation(s)
|
||||
</dt>
|
||||
<dd>
|
||||
Design, éveloppement full-stack
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Date
|
||||
</dt>
|
||||
<dd>
|
||||
2024
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
</section>
|
||||
<section id="heroines" class="portfolio-group">
|
||||
<h1 id="héroïnes">Héro·ïne·s</h1>
|
||||
<p>Publication du groupe de recherche de La Fémis à propos de la
|
||||
figure du héros dans les œuvres et pratiques artistiques</p>
|
||||
<figure>
|
||||
<img src="images/repenser-les-heros.png" alt="." />
|
||||
<figcaption aria-hidden="true">.</figcaption>
|
||||
</figure>
|
||||
<div class="details">
|
||||
<dl>
|
||||
<dt>
|
||||
URL
|
||||
</dt>
|
||||
<dd>
|
||||
<a href="https://repenserlesheros.femis.fr/" target="_blank">repenserlesheros.femis.fr</a>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Secteur
|
||||
</dt>
|
||||
<dd>
|
||||
Recherche
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Client
|
||||
</dt>
|
||||
<dd>
|
||||
groupe de recherche de La Fémis / SACRe, PSL
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Prestation(s)
|
||||
</dt>
|
||||
<dd>
|
||||
Design, développement full-stack
|
||||
</dd>
|
||||
</dl>
|
||||
<!-- <dl>
|
||||
<dt>Partenaire(s)</dt>
|
||||
<dd>en collaboration avec Benjamin Benjamin Gremillon et l’éauipe du médialab</dd>
|
||||
</dl> -->
|
||||
<dl>
|
||||
<dt>
|
||||
Date
|
||||
</dt>
|
||||
<dd>
|
||||
2021
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
</section>
|
||||
<section id="acau" class="portfolio-group">
|
||||
<h1 id="acau">ACAU</h1>
|
||||
<p>Site vitrine pour l’Agence Coopérative Architectes
|
||||
Urbanistes.</p>
|
||||
<figure>
|
||||
<img src="images/acau.png" alt="." />
|
||||
<figcaption aria-hidden="true">.</figcaption>
|
||||
</figure>
|
||||
<div class="details">
|
||||
<dl>
|
||||
<dt>
|
||||
URL
|
||||
</dt>
|
||||
<dd>
|
||||
<a href="https://www.acau-architectes.fr/" target="_blank">acau-architectes.fr/</a>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Secteur
|
||||
</dt>
|
||||
<dd>
|
||||
Communication
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Client
|
||||
</dt>
|
||||
<dd>
|
||||
Agence Coopérative Architectes Urbanistes
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Prestation(s)
|
||||
</dt>
|
||||
<dd>
|
||||
Développement full-stack
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Partenaire(s)
|
||||
</dt>
|
||||
<dd>
|
||||
Plastac (design)
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Date
|
||||
</dt>
|
||||
<dd>
|
||||
2024
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
</section>
|
||||
<section id="decarb-one" class="portfolio-group">
|
||||
<h1 id="decarb.one">Decarb.one</h1>
|
||||
<p>Site vitrine pour l’agence de relations presse et de
|
||||
communication, decarb.one qui raconte un monde décarboné.</p>
|
||||
<figure>
|
||||
<img src="images/decarb-one.png" alt="." />
|
||||
<figcaption aria-hidden="true">.</figcaption>
|
||||
</figure>
|
||||
<div class="details">
|
||||
<dl>
|
||||
<dt>
|
||||
URL
|
||||
</dt>
|
||||
<dd>
|
||||
<a href="https://decarb.one/" target="_blank">decarb.one</a>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Secteur
|
||||
</dt>
|
||||
<dd>
|
||||
Communication
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Client
|
||||
</dt>
|
||||
<dd>
|
||||
decarb.one
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Prestation(s)
|
||||
</dt>
|
||||
<dd>
|
||||
Design, développement full-stack
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Partenaire(s)
|
||||
</dt>
|
||||
<dd>
|
||||
en collaboration avec Praticable
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>
|
||||
Date
|
||||
</dt>
|
||||
<dd>
|
||||
2022
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
</section>
|
||||
<section id="details">
|
||||
<p>STUDIO VARIABLE<br />
|
||||
SAS, société par actions simplifiée au capital social de 1 200,00
|
||||
€<br />
|
||||
N° SIRET 988 558 003 00014<br />
|
||||
N° de TVA FR95988558003</p>
|
||||
<p>Siège social:<br />
|
||||
22 rue Boyer<br />
|
||||
75020 Paris - France</p>
|
||||
<p>Lieu d’activité:<br />
|
||||
Césure (Bureau 339)<br />
|
||||
13 rue Santeuil<br />
|
||||
75005 Paris - France</p>
|
||||
<p>Site web: <a
|
||||
href="https://studio-variable.com/">studio-variable.com</a></p>
|
||||
<p>Pour nous contacter: contact@studio-variable.com</p>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
18
src/details.md
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
STUDIO VARIABLE \
|
||||
SAS, société par actions simplifiée au capital social de 1 200,00 € \
|
||||
N° SIRET 988 558 003 00014 \
|
||||
N° de TVA FR95988558003
|
||||
|
||||
Siège social: \
|
||||
22 rue Boyer \
|
||||
75020 Paris - France
|
||||
|
||||
Lieu d’activité: \
|
||||
Césure (Bureau 339) \
|
||||
13 rue Santeuil \
|
||||
75005 Paris - France
|
||||
|
||||
Site web: [studio-variable.com](https://studio-variable.com/)
|
||||
|
||||
Pour nous contacter: contact@studio-variable.com
|
||||
|
||||
38
src/devis.md
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
## Devis
|
||||
|
||||
→ Taux journalier: 800€ HT
|
||||
|
||||
|
||||
|
||||
| **Tâche** | **Jours** | **€ (HT)** |
|
||||
| ------------------------------------------------------------ | --------- | ---------- |
|
||||
| Création du logo | 1 | 800 |
|
||||
| Identité visuelle avec mockup d’une page responsive type (maquettes HTML & CSS) | 2 | 1600 |
|
||||
| UI arbre de compétences (explorable, filtrage) | 1.5 | 1200 |
|
||||
| Développement front-end de toutes les pages responsives | | |
|
||||
| <span class="indent"></span>→ Home page | 1 | 800 |
|
||||
| <span class="indent"></span>→ Pages listes et de tri | 1.5 | 1200 |
|
||||
| <span class="indent"></span>→ Pages individuelles | 1.5 | 1200 |
|
||||
| <span class="indent"></span>→ Pages de contenu: présentation, ressources, etc. | 0.5 | 400 |
|
||||
| <span class="indent"></span>→ Intégration au code existant | 30.00% | 1080 |
|
||||
| Mise en place de la recherche réactive | 0.5 | 400 |
|
||||
| Révisions UI et petits ajustements | 0.5 | 400 |
|
||||
| Tests cross-device, optimisation HTML/CSS/JS et accessibilité | 0.5 | 400 |
|
||||
| Gestion de projet | 10.00% | 948 |
|
||||
|
||||
|
||||
|
||||
<div id="total">
|
||||
|
||||
| Sous total HT | 10428 |
|
||||
| ------------- | ------- |
|
||||
| TVA 20 % | 2085.6 |
|
||||
| Total TTC | 12513.6 |
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
Note : Si votre structure ne récupère pas la TVA et que cela constitue une contrainte budgétaire, nous vous invitons à nous en faire part afin d’en discuter.
|
||||
|
||||
29
src/equipe.md
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
## Équipe
|
||||
|
||||
<div class="people">
|
||||
|
||||

|
||||
|
||||
# Julie Blanc, chef de projet
|
||||
|
||||
Docteur en ergonomie et spécialiste de CSS, Julie Blanc assurera la chefferie de projet, le **design** et le **développement front-end**.
|
||||
|
||||
Julie est designer, développeuse et chercheuse. Elle a co-fondé le studio Variable. Elle est chercheuse associée à la HEAD (Genève). Sa thèse, soutenue en 2023, porte sur l’utilisation des techonologies du web par les designers graphique.
|
||||
|
||||
</div>
|
||||
|
||||
<div class="people">
|
||||
|
||||

|
||||
|
||||
# Adrien Payet
|
||||
|
||||
Développeur full-stack, spécialisé en design et développement de back-office et d'interactions front-end, Adrien apportera son appui pour garantir une **intégration harmonieuse** dans l’architecture et l’écosystème technique existants.
|
||||
|
||||
|
||||
Adrien étudie, enseigne et pratique la philosophie, le design et le code. Il a co-fondé le studio Variable. Il enseigne à l’ENSCi et à Paris 1.
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
17
src/files.yaml
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
input-files:
|
||||
- src/studio-variable.md
|
||||
- src/note-intention.md
|
||||
- src/devis.md
|
||||
- src/planning.md
|
||||
- src/livrables.md
|
||||
- src/equipe.md
|
||||
- src/portfolio-introduction.md
|
||||
- src/portfolio-1img/wysiwyg.md
|
||||
- src/portfolio-1img/chromobase.md
|
||||
- src/portfolio-1img/medialab.md
|
||||
- src/portfolio-1img/cultures-visuelles.md
|
||||
- src/portfolio-1img/actuel-inactuel.md
|
||||
- src/portfolio-1img/heroines.md
|
||||
- src/portfolio-1img/acau.md
|
||||
- src/portfolio-1img/decarb-one.md
|
||||
- src/details.md
|
||||
5
src/livrables.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
## Livrables
|
||||
|
||||
- Copie du dépôt GitHub public (AGPLv3) avec : code, Dockerfile
|
||||
- Pack logo (.svg / .png multi-résolution).
|
||||
- Maquettes codées (HTML/SCSS) si demandées
|
||||
8
src/meta.yaml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: "Studio Variable"
|
||||
baseline: "Design × code"
|
||||
client: "Proposition RésIn"
|
||||
date: "6 octobre 2025"
|
||||
contact: "contact@studio-varible.com"
|
||||
footer: "Studio Variable – Proposition RésIn"
|
||||
---
|
||||
19
src/note-intention.md
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
## Note intention
|
||||
|
||||
Notre intervention se concentre sur une double approche, à la fois graphique et technique, pensée comme un tout cohérent. Nous concevons le design non pas comme une couche séparée mais comme un travail mené directement dans le code, afin que chaque choix esthétique s’accompagne d’une réflexion technique et ergonomique. Les premiers prototypes seront donc réalisés en HTML et CSS, pour permettre de valider rapidement des maquettes fonctionnelles, accessibles et déjà proches de la version finale. Cette méthode réduit les écarts entre intention et réalisation, et permet d’intégrer dès le départ nos principes d’écoconception et d’accessibilité.
|
||||
|
||||
**Sur le plan graphique**, nous portons une attention particulière à la lisibilité et à l’harmonisation des contenus. L’hétérogénéité des profils proposés dans l’annuaire (parfois très succincts, parfois très denses) sera prise en compte pour construire des pages qui restent esthétiques et équilibrées. Nous privilégions **une esthétique sobre, sur mesure, où la typographie et les contrastes assurent une hiérarchie claire**, afin d’éviter les ruptures visuelles dans l’annuaire. L’arbre des compétences, qui constitue un outil central de navigation et de recherche, fera l’objet d’une refonte spécifique : nous souhaitons en améliorer la lisibilité et l’exploration, en le rendant plus visible et plus interactif, tout en veillant à une utilisation fluide sur mobile comme sur ordinateur. Notre objectif est de concevoir une interface qui mette en valeur les compétences et facilite réellement la recherche dans l’annuaire, sans surcharge graphique inutile.
|
||||
|
||||
**Sur le plan technique**, nous proposons une architecture simple : **HTML, SCSS et JavaScript vanilla**, complétés si nécessaire par une librairie légère comme Alpine.js pour la recherche réactive. Cette sobriété garantit la compatibilité avec la licence libre du projet, facilite la maintenance et limite l’empreinte écologique du site. Nous travaillerons à partir de l’existant, que ce soit le code ou l’image Docker déjà utilisée, et nous engageons à adapter nos développements à vos contraintes sans surcomplexification. En fonction de vos préférence, nous travaillerons soit sur une branch du répôt Git existant soit sur une copie de ce repo.
|
||||
|
||||
Notre façon de travailler repose sur des **allers-retours réguliers** avec vous : nous définirons des étapes intermédiaires pour valider les choix au fur et à mesure, plutôt que de tout livrer en une fois. Cela permet d’ajuster le projet en fonction de vos retours et des contraintes qui pourraient émerger.
|
||||
|
||||
Notre force réside dans la complémentarité de nos profils : designers et développeur·ses à la fois, nous avons l’habitude de traverser les deux champs de compétences et de **faire dialoguer les logiques formelles et techniques**. En tant que studio, nous défendons une approche sur-mesure, attentive aux usages concrets, à la sobriété des moyens employés et au respect de la vie privée. Cette philosophie guidera l’ensemble de notre intervention : un site léger, <br>lisible et durable, au service du réseau RésIn.
|
||||
|
||||
|
||||
### Les forces de notre proposition
|
||||
|
||||
- **Des maquettes directement codées en HTML et CSS**, plutôt que figées dans un outil comme Figma. Cette approche permet d’adopter une « mentalité wev » dès le maquettage. Elle garantie la faisabilité technique du design, la fidélité des maquettes par rapport au résultat final, réduit les allers-retours entre design et développement et accélère nettement l’intégration.
|
||||
- **Un travail mené au plus près du code existant**, afin de faciliter l’intégration de nos développements, d’assurer la continuité technique et de favoriser des échanges simples et efficaces avec vous.
|
||||
- **Une démarche d’écoconception et d’accessibilité assumée**, qui se traduit par un design et un code légers, un recours limité à JavaScript, un HTML bien construit répondant aux normes d’accessibilité, l’utlisation de variable fonts et des fallback bien pensé. Bref, une attention constante à la performance et à la sobriété des ressources.
|
||||
- **Une refonte graphique pensée autour de l’arbre des compétences**, conçu comme un élément central et progressif de navigation : il sera placé visuellement à proximité du moteur de recherche sur desktop, déployé en accordéon sur mobile, et enrichi de fonctions de multi-filtrage. <br>Selon la pertinence, un fil d’Ariane (breadcrumb) pour contextualiser <br>les profils affichés.
|
||||
21
src/planning.md
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
## Planning & phases
|
||||
|
||||
- Démarrage : **dès sélection** (idéalement semaine du 13 octobre 2025).
|
||||
- Rendu final : **8 décembre 2025**.
|
||||
- Mode : itérations de 1 à 2 semaines (sprints courts).
|
||||
|
||||
|
||||
### Phases
|
||||
|
||||
- Semaine 1 (13–17 oct.) : Échange pour le démarrage du projet, accès API
|
||||
- Semaine 2–3 (20–31 oct.) : Proposition d’identité sur maquette HTML/CSS statique (1 page type), avec UI arbre de compétences. Inclus palette de couleur + proposition logo
|
||||
- **4 novembre : validation de l’identité proposée**
|
||||
- Semaine 4–6 (3–21 nov.) : Développement front avec sprints
|
||||
- Sprint 1 — Copie du dèpôt, pipeline parallèle, audit HTML, mise en place SASS
|
||||
- Sprint 2 — Intégration arbre de compétence, développement de la page d’acceuil et de la liste filtrables
|
||||
- Sprint 3 — Développement et intégration des pages individuelles et des pages de contenus
|
||||
- Sprint 4 — Recherche plein texte réactive et affinement de l’affichage filtrage multi-sélection
|
||||
- Semaine 7 (24–28 nov.) : Révisions UI et petits ajustements. Validation définitive du logo.
|
||||
- Semaine 8 (1–5 déc.) : Tests & optimisation.
|
||||
- **Livraison finale** : au plus tard **8 décembre 2025**.
|
||||
|
||||
33
src/portfolio-1img/acau.md
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
# ACAU
|
||||
|
||||
Site vitrine pour l’Agence Coopérative Architectes Urbanistes.
|
||||
|
||||

|
||||
|
||||
<div class="details">
|
||||
<dl>
|
||||
<dt>URL</dt>
|
||||
<dd><a href="https://www.acau-architectes.fr/" target="_blank">acau-architectes.fr/</a>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Secteur</dt>
|
||||
<dd>Communication</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Client</dt>
|
||||
<dd>Agence Coopérative Architectes Urbanistes</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Prestation(s)</dt>
|
||||
<dd>Développement full-stack</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Partenaire(s)</dt>
|
||||
<dd>Plastac (design)</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Date</dt>
|
||||
<dd>2024</dd>
|
||||
</dl>
|
||||
</div>
|
||||
29
src/portfolio-1img/actuel-inactuel.md
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
# actuel-inactuel
|
||||
|
||||
Plateforme pour une critique des arts et des techniques.
|
||||
|
||||

|
||||
|
||||
<div class="details">
|
||||
<dl>
|
||||
<dt>URL</dt>
|
||||
<dd><a href="https://actuel-inactuel.fr/" target="_blank">actuel-inactuel.fr</a>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Secteur</dt>
|
||||
<dd>Recherche</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Client</dt>
|
||||
<dd>Association époque </dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Prestation(s)</dt>
|
||||
<dd>Design, éveloppement full-stack</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Date</dt>
|
||||
<dd>2024</dd>
|
||||
</dl>
|
||||
</div>
|
||||
33
src/portfolio-1img/chromobase.md
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
# Chromobase
|
||||
|
||||
Base de données du projet ERC Chromotope qui explore l'impact culturel de l’apparition de la couleur dans l’industrie dans les années 1850.
|
||||
|
||||

|
||||
|
||||
<div class="details">
|
||||
<dl>
|
||||
<dt>URL</dt>
|
||||
<dd><a href="https://chromobase.huma-num.fr/" target="_blank">chromobase.huma-num.fr</a>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Secteur</dt>
|
||||
<dd>Recherche</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Client</dt>
|
||||
<dd>Sorbonne Université, CNAM, University of Oxford</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Prestation(s)</dt>
|
||||
<dd>Design, front-end</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Partenaire(s)</dt>
|
||||
<dd>OuestWare (développement)</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Date</dt>
|
||||
<dd>2023</dd>
|
||||
</dl>
|
||||
</div>
|
||||
33
src/portfolio-1img/cultures-visuelles.md
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
# Cultures visuelles
|
||||
|
||||
Plateforme pour le programme de recherche, intégrant une interface graphique an front-end pour l’édition du contenu.
|
||||
|
||||

|
||||
|
||||
<div class="details">
|
||||
<dl>
|
||||
<dt>URL</dt>
|
||||
<dd><a href="https://www.culturesvisuelles.org/" target="_blank">culturesvisuelles.org</a>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Secteur</dt>
|
||||
<dd>Recherche</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Client</dt>
|
||||
<dd>Université de Strasbourg</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Prestation(s)</dt>
|
||||
<dd>Design, éveloppement full-stack</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Partenaire(s)</dt>
|
||||
<dd>en collaboration avec Timothée Goguely</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Date</dt>
|
||||
<dd >2020</dd>
|
||||
</dl>
|
||||
</div>
|
||||
33
src/portfolio-1img/decarb-one.md
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
# Decarb.one
|
||||
|
||||
Site vitrine pour l’agence de relations presse et de communication, decarb.one qui raconte un monde décarboné.
|
||||
|
||||

|
||||
|
||||
<div class="details">
|
||||
<dl>
|
||||
<dt>URL</dt>
|
||||
<dd><a href="https://decarb.one/" target="_blank">decarb.one</a>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Secteur</dt>
|
||||
<dd>Communication</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Client</dt>
|
||||
<dd>decarb.one</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Prestation(s)</dt>
|
||||
<dd>Design, développement full-stack</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Partenaire(s)</dt>
|
||||
<dd>en collaboration avec Praticable</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Date</dt>
|
||||
<dd>2022</dd>
|
||||
</dl>
|
||||
</div>
|
||||
33
src/portfolio-1img/heroines.md
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
# Héro·ïne·s
|
||||
|
||||
Publication du groupe de recherche de La Fémis à propos de la figure du héros dans les œuvres et pratiques artistiques
|
||||
|
||||

|
||||
|
||||
<div class="details">
|
||||
<dl>
|
||||
<dt>URL</dt>
|
||||
<dd><a href="https://repenserlesheros.femis.fr/" target="_blank">repenserlesheros.femis.fr</a>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Secteur</dt>
|
||||
<dd>Recherche</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Client</dt>
|
||||
<dd>groupe de recherche de La Fémis / SACRe, PSL</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Prestation(s)</dt>
|
||||
<dd>Design, développement full-stack</dd>
|
||||
</dl>
|
||||
<!-- <dl>
|
||||
<dt>Partenaire(s)</dt>
|
||||
<dd>en collaboration avec Benjamin Benjamin Gremillon et l’éauipe du médialab</dd>
|
||||
</dl> -->
|
||||
<dl>
|
||||
<dt>Date</dt>
|
||||
<dd>2021</dd>
|
||||
</dl>
|
||||
</div>
|
||||
33
src/portfolio-1img/medialab.md
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
# médialab
|
||||
|
||||
Laboratoire interdisplinaire qui interroge les relations entre le numérique et nos sociétés.
|
||||
|
||||

|
||||
|
||||
<div class="details">
|
||||
<dl>
|
||||
<dt>URL</dt>
|
||||
<dd><a href="https://medialab.sciencespo.fr/" target="_blank">medialab.sciencespo.fr</a>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Secteur</dt>
|
||||
<dd>Recherche</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Client</dt>
|
||||
<dd>médialab, SciencesPo</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Prestation(s)</dt>
|
||||
<dd>Design, développement front-end</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Partenaire(s)</dt>
|
||||
<dd>en collaboration avec Benjamin Benjamin Gremillon et l’équipe du médialab</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Date</dt>
|
||||
<dd>2019</dd>
|
||||
</dl>
|
||||
</div>
|
||||
29
src/portfolio-1img/wysiwyg.md
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
# WYSIWYG
|
||||
|
||||
Projet de recherche l’évolution des logiciels de graphisme en Suisse et en France (1980 - aujourd'hui)
|
||||
|
||||

|
||||
|
||||
<div class="details">
|
||||
<dl>
|
||||
<dt>URL</dt>
|
||||
<dd><a href="https://wysiwyg.ch/" target="_blank">wysiwyg.ch</a>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Secteur</dt>
|
||||
<dd>Recherche</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Client</dt>
|
||||
<dd>HEAD – Genève, Haute école d'art et de design</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Prestation(s)</dt>
|
||||
<dd>Design, développement full-stack</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Date</dt>
|
||||
<dd>2025</dd>
|
||||
</dl>
|
||||
</div>
|
||||
1
src/portfolio-introduction.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
## Sélection de projets
|
||||
5
src/studio-variable.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
Créé en juin 2025 et basé à Paris, Studio Variable conjugue **design graphique, design d’interface et développement web full-stack**. Œuvrant principalement avec le secteur de la recherche, de l’écologie et de la culture, il collabore aussi bien avec de grands comptes qu’avec des indépendants.
|
||||
|
||||
Fondé par **Julie Blanc** (designer-développeuse et chercheuse en ergonomie) et **Adrien Payet** (designer-développeur issu de la philosophie), Studio Variable développe une approche formelle et technique qui concilie **ergonomie, sobriété, accessibilité et respect de la vie privée**.
|
||||
|
||||
Nous sommes spécialisés dans la publication à source unique en **web-to-print**. Nous privilégions les projets ouverts et engagés, avec une forte culture du logiciel libre et de l’open source.
|
||||