diff --git a/index.html b/index.html
new file mode 100644
index 0000000..2bad085
--- /dev/null
+++ b/index.html
@@ -0,0 +1,104 @@
+{{:assign var="custom_css." value="./style.css"}}
+{{:assign var="custom_css." value="/content.css"}}
+
+{{:admin_header title="Vélos à vendre" custom_css=$custom_css current="module_velos_a_vendre"}}
+
+
+
+
+ Type de vélo
+ Course
+ Mi-course
+ Randonneuse
+ Mini
+ Pliant
+ Ville
+ VTC
+ VTT
+ BMX
+ Autre
+
+
+ Genre de cadre
+ Diamant
+ Mixte
+ Enfant/Diamant
+ Enfant/Mixte
+
+
+ Taille des roues
+ 700C
+ 650B
+ 26"
+ 24"
+ 20"
+ 16"
+ Autre
+
+
+
+
+ {{#select etiquette, type, genre, roues, couleur, prix, modele, date_entree FROM plugin_stock_velos WHERE raison_sortie IS NULL AND prix > 0 ORDER BY date_entree DESC;}}
+ {{:assign taille=$roues|truncate:2:"":false}}
+
+
+ {{#select name, path FROM files WHERE parent = {"ext/p/stock_velos/public/%s"|args:$etiquette} ;}}
+
+ {{else}}
+
+ {{/select}}
+
+
{{$etiquette}}
+
+
+ Type : {{$type}}
+ Taille : {{$roues}}
+ Cadre : {{$genre}}
+ Modèle : {{$modele}}
+
+ Prix : {{$prix}} €
+ entré en stock {{$date_entree|relative_date}}
+
+
+
+ {{else}}
+ Aucun vélo n'est à vendre, revenez plus tard.
+ {{/select}}
+
+
+
+
+
\ No newline at end of file
diff --git a/module.ini b/module.ini
new file mode 100644
index 0000000..7b3694b
--- /dev/null
+++ b/module.ini
@@ -0,0 +1,7 @@
+name = "Vélos à vendre"
+description = "Module à utiliser en addition à «Gestion des vélos», qui créé une page publique affichant tous les vélos à vendre."
+author = "Charlie, de Mines de Rayons"
+author_url = "https://git.minesderayons.fr"
+restrict_section = null
+restrict_level = "none"
+web = false
\ No newline at end of file
diff --git a/style.css b/style.css
new file mode 100644
index 0000000..faec82c
--- /dev/null
+++ b/style.css
@@ -0,0 +1,83 @@
+.filters {
+
+ fieldset {
+ position: relative;
+ min-width: 200px;
+ label {
+ flex: 1 150px;
+ min-width: 50px;
+ }
+ }
+
+ input[type="checkbox"], input[type="radio"] {
+ position: relative;
+ opacity: 0;
+ font-size: 1.2em;
+ left: 1em;
+ top: -0.1em;
+ }
+}
+
+.container {
+ position: relative;
+ flex: 1;
+ min-width: 200px;
+ border: solid 1px black;
+ background-color: transparent;
+ border-radius: 10px;
+ overflow: hidden;
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
+}
+
+.properties{
+ margin: 10px;
+ padding: 10px;
+}
+
+.bike-list{
+ display: flex;
+ flex-wrap: wrap;
+ gap: 10px;
+}
+
+.image-wrapper {
+ position: relative;
+}
+
+
+.image {
+ display: block;
+ max-width:100%;
+ max-height:150px;
+ width: auto;
+ height: auto;
+}
+
+.label {
+ margin-left: auto;
+ margin-right: auto;
+ left: 0;
+ right: 0;
+ color: black;
+ text-align: center;
+ border-color: black;
+ border-top: solid 1px;
+ border-bottom: solid 1px;
+ background-color: yellow;
+ min-width: 5em;
+ width: 100%;
+ min-height: 2ex;
+ text-align: center;
+ vertical-align: middle;
+ z-index: 1;
+}
+
+li.date-entree {
+ display: block;
+ position: absolute;
+ bottom: 1.5em;
+ margin-bottom: -10px;
+ right: 10px;
+ font-size: x-small;
+ color: gray;
+}
\ No newline at end of file