ZIELNIK — rośliny do domu
Landing pagePodgląd
Ładowanie podglądu…
Zielona ilustracja w dużej skali i filtrowanie roślin według miejsca.
Kod źródłowy
Licencja MIT — także do użytku komercyjnego. Zachowaj informacje o autorze i licencji.
HTML
<header id="top"><a class="brand" href="#top">zielnik.</a><nav aria-label="Nawigacja"><a href="#kolekcja">Rośliny</a><a href="#o-nas">Pielęgnacja</a></nav></header><main><section class="botanic-hero"><div class="botanic-type" data-reveal><span class="eyebrow">Trochę natury, codziennie</span><h1>Zrób miejsce<br>na <em>zielone.</em></h1><p>Na parapecie, obok fotela, przy łóżku. Znajdź roślinę do swojego rytmu dnia.</p><a class="button" href="#kolekcja">Znajdź swoją roślinę</a></div><div class="botanic-art" data-reveal><svg viewBox="0 0 400 440" role="img" aria-label="Ilustracja rośliny doniczkowej" xmlns="http://www.w3.org/2000/svg"><rect width="400" height="440" fill="#bdd5ce"></rect><path d="M154 314h100l-17 105h-66Z" fill="#bc6d4c"></path><path d="M154 314h100v14H154Z" fill="#e6b8a0"></path><path d="M200 324V82" fill="none" stroke="#24442d" stroke-width="6"></path><path d="M200 150Q104 140 104 86Q190 73 200 150Z" fill="#163f36"></path><path d="M200 146L104 91" stroke="#b4c28b" fill="none"></path><path d="M200 183Q296 173 296 119Q210 106 200 183Z" fill="#345b37"></path><path d="M200 179L296 124" stroke="#b4c28b" fill="none"></path><path d="M200 216Q104 206 104 152Q190 139 200 216Z" fill="#688747"></path><path d="M200 212L104 157" stroke="#b4c28b" fill="none"></path><path d="M200 249Q296 239 296 185Q210 172 200 249Z" fill="#163f36"></path><path d="M200 245L296 190" stroke="#b4c28b" fill="none"></path><path d="M200 282Q104 272 104 218Q190 205 200 282Z" fill="#345b37"></path><path d="M200 278L104 223" stroke="#b4c28b" fill="none"></path><path d="M200 315Q296 305 296 251Q210 238 200 315Z" fill="#688747"></path><path d="M200 311L296 256" stroke="#b4c28b" fill="none"></path></svg><span class="plant-note">Nowy liść.<br>Dobry dzień.</span></div></section><section class="section" id="kolekcja"><div class="section-head"><h2>Gdzie zamieszka?</h2><div class="plant-filters" role="group" aria-label="Miejsce dla rośliny"><button type="button" data-filter="all" aria-pressed="true">Wszystkie</button><button type="button" data-filter="cien" aria-pressed="false">Mniej światła</button><button type="button" data-filter="slonce" aria-pressed="false">Jasne miejsce</button></div></div><p id="selection-status" role="status">Rośliny: 3</p><div class="plant-grid"><article class="plant-card" data-light="cien"><svg viewBox="0 0 400 440" role="img" aria-label="Ilustracja rośliny doniczkowej" xmlns="http://www.w3.org/2000/svg"><rect width="400" height="440" fill="#e1e8b9"></rect><path d="M154 314h100l-17 105h-66Z" fill="#bc6d4c"></path><path d="M154 314h100v14H154Z" fill="#e6b8a0"></path><path d="M200 324V82" fill="none" stroke="#24442d" stroke-width="6"></path><path d="M200 150Q120 140 120 86Q190 73 200 150Z" fill="#345b37"></path><path d="M200 146L120 91" stroke="#b4c28b" fill="none"></path><path d="M200 183Q280 173 280 119Q210 106 200 183Z" fill="#688747"></path><path d="M200 179L280 124" stroke="#b4c28b" fill="none"></path><path d="M200 216Q120 206 120 152Q190 139 200 216Z" fill="#163f36"></path><path d="M200 212L120 157" stroke="#b4c28b" fill="none"></path><path d="M200 249Q280 239 280 185Q210 172 200 249Z" fill="#345b37"></path><path d="M200 245L280 190" stroke="#b4c28b" fill="none"></path><path d="M200 282Q120 272 120 218Q190 205 200 282Z" fill="#688747"></path><path d="M200 278L120 223" stroke="#b4c28b" fill="none"></path><path d="M200 315Q280 305 280 251Q210 238 200 315Z" fill="#163f36"></path><path d="M200 311L280 256" stroke="#b4c28b" fill="none"></path></svg><div><h3>Zamiokulkas</h3><p>Spokojny kąt</p></div></article><article class="plant-card" data-light="slonce"><svg viewBox="0 0 400 440" role="img" aria-label="Ilustracja rośliny doniczkowej" xmlns="http://www.w3.org/2000/svg"><rect width="400" height="440" fill="#e7d5c3"></rect><path d="M154 314h100l-17 105h-66Z" fill="#bc6d4c"></path><path d="M154 314h100v14H154Z" fill="#e6b8a0"></path><path d="M200 324V82" fill="none" stroke="#24442d" stroke-width="6"></path><path d="M200 150Q112 140 112 86Q190 73 200 150Z" fill="#688747"></path><path d="M200 146L112 91" stroke="#b4c28b" fill="none"></path><path d="M200 183Q288 173 288 119Q210 106 200 183Z" fill="#163f36"></path><path d="M200 179L288 124" stroke="#b4c28b" fill="none"></path><path d="M200 216Q112 206 112 152Q190 139 200 216Z" fill="#345b37"></path><path d="M200 212L112 157" stroke="#b4c28b" fill="none"></path><path d="M200 249Q288 239 288 185Q210 172 200 249Z" fill="#688747"></path><path d="M200 245L288 190" stroke="#b4c28b" fill="none"></path><path d="M200 282Q112 272 112 218Q190 205 200 282Z" fill="#163f36"></path><path d="M200 278L112 223" stroke="#b4c28b" fill="none"></path><path d="M200 315Q288 305 288 251Q210 238 200 315Z" fill="#345b37"></path><path d="M200 311L288 256" stroke="#b4c28b" fill="none"></path></svg><div><h3>Fikus</h3><p>Jasne miejsce</p></div></article><article class="plant-card" data-light="cien"><svg viewBox="0 0 400 440" role="img" aria-label="Ilustracja rośliny doniczkowej" xmlns="http://www.w3.org/2000/svg"><rect width="400" height="440" fill="#bdd5ce"></rect><path d="M154 314h100l-17 105h-66Z" fill="#bc6d4c"></path><path d="M154 314h100v14H154Z" fill="#e6b8a0"></path><path d="M200 324V82" fill="none" stroke="#24442d" stroke-width="6"></path><path d="M200 150Q104 140 104 86Q190 73 200 150Z" fill="#163f36"></path><path d="M200 146L104 91" stroke="#b4c28b" fill="none"></path><path d="M200 183Q296 173 296 119Q210 106 200 183Z" fill="#345b37"></path><path d="M200 179L296 124" stroke="#b4c28b" fill="none"></path><path d="M200 216Q104 206 104 152Q190 139 200 216Z" fill="#688747"></path><path d="M200 212L104 157" stroke="#b4c28b" fill="none"></path><path d="M200 249Q296 239 296 185Q210 172 200 249Z" fill="#163f36"></path><path d="M200 245L296 190" stroke="#b4c28b" fill="none"></path><path d="M200 282Q104 272 104 218Q190 205 200 282Z" fill="#345b37"></path><path d="M200 278L104 223" stroke="#b4c28b" fill="none"></path><path d="M200 315Q296 305 296 251Q210 238 200 315Z" fill="#688747"></path><path d="M200 311L296 256" stroke="#b4c28b" fill="none"></path></svg><div><h3>Filodendron</h3><p>Rozproszone światło</p></div></article></div></section><section class="section split" id="o-nas"><h2>Nie każda<br>potrzebuje wiele.</h2><div><p>Zanim podlejesz, sprawdź podłoże. Zanim przestawisz doniczkę, daj roślinie czas na przyzwyczajenie się do nowego miejsca.</p><div class="care"><button class="button" type="button" data-open="Pierwsze dni w domu" data-description="Obserwuj liście, sprawdzaj wilgotność podłoża i wybierz miejsce z odpowiednim światłem. Potrzeby zależą od gatunku i warunków w mieszkaniu.">Krótki poradnik</button></div></div></section></main><footer><span>zielnik. / kolekcja koncepcyjna</span><a href="#top">Na górę</a></footer><dialog aria-labelledby="dialog-title" aria-describedby="dialog-description"><h2 id="dialog-title">Szczegóły</h2><p id="dialog-description"></p><form method="dialog"><button class="button" type="submit">Zamknij</button></form></dialog>
CSS
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 Arial,Helvetica,sans-serif}button,input,select{font:inherit;border-radius:0}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-underline-offset:5px}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid var(--focus,var(--ink));outline-offset:5px}button:disabled{cursor:default;opacity:.5}h1,h2,h3,p,figure{margin:0}h1,h2{line-height:1;letter-spacing:-.055em}h1{font-size:clamp(54px,8vw,120px)}h2{font-size:clamp(34px,5vw,70px)}h3{font-size:22px;line-height:1.15}p{max-width:60ch}svg{display:block;width:100%;height:auto}header{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:22px 4vw;border-bottom:1px solid var(--line)}.brand{font-size:24px;font-weight:800;text-decoration:none;letter-spacing:-1px}nav{display:flex;gap:24px;flex-wrap:wrap}nav a{min-height:44px;display:inline-flex;align-items:center;text-decoration:none;font-size:14px}nav a:hover{text-decoration:underline}.eyebrow{font:12px/1.4 monospace;letter-spacing:.08em;text-transform:uppercase}.button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 22px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);text-decoration:none}.button:hover{background:var(--paper);color:var(--ink)}.outline{background:transparent;color:var(--ink)}.section{padding:70px 4vw;border-top:1px solid var(--line)}.section>p{margin:22px 0}.section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:32px}.section-head p{max-width:36ch}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.arrow{width:48px;height:48px;background:transparent;border:1px solid var(--ink);color:var(--ink);font-size:24px}.arrow:hover{background:var(--ink);color:var(--paper)}.muted{color:var(--muted)}.status{font-size:14px}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}footer{display:flex;justify-content:space-between;gap:20px;padding:28px 4vw;border-top:1px solid var(--line);font-size:13px}dialog{padding:32px;border:1px solid var(--ink);max-width:540px;width:calc(100% - 40px);background:var(--paper);color:var(--ink)}dialog::backdrop{background:#1119}dialog h2{font-size:36px;letter-spacing:-.03em}dialog p{margin:24px 0}dialog form{display:flex;justify-content:end}[hidden]{display:none!important}.split{display:grid;grid-template-columns:1fr 1fr;gap:40px}.list{list-style:none;padding:0;margin:0}.list li{padding:22px 0;border-bottom:1px solid var(--line)}.list li b{display:block;font-size:20px}.list li span{color:var(--muted)}@media(max-width:640px){header{padding:14px 5vw;gap:10px;flex-wrap:wrap}nav{gap:18px}.brand{font-size:21px}h1{font-size:clamp(46px,13vw,80px)}.section{padding:44px 5vw}.section-head{align-items:start;flex-direction:column;gap:16px}.split{grid-template-columns:1fr}.button{padding:10px 16px}.section-head h2{font-size:42px}footer{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
body{--paper:#f0eedc;--ink:#244333;--line:#b2b99d;--muted:#4e624b}.brand,h1,h2{font-family:Georgia,serif}.brand{font-size:30px;font-weight:400}.botanic-hero{display:grid;grid-template-columns:1.25fr 1fr;min-height:560px}.botanic-type{padding:70px 4vw}.botanic-type h1{font-weight:400;font-size:clamp(55px,7.5vw,110px);margin:22px 0}.botanic-type h1 em{font-weight:400}.botanic-type p{max-width:37ch;margin-bottom:28px}.botanic-art{position:relative;background:#bdd5ce}.botanic-art svg{height:100%;max-height:620px}.plant-note{position:absolute;bottom:28px;left:24px;padding:16px;background:#f0eedc;font:italic 23px/1.2 Georgia;transform:rotate(-5deg)}.plant-filters{display:flex;flex-wrap:wrap;gap:8px}.plant-filters button{padding:10px 14px;min-height:44px;border:1px solid #738368;color:var(--ink);background:transparent}.plant-filters [aria-pressed=true]{background:var(--ink);color:var(--paper)}.plant-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:24px}.plant-card>div{padding:18px 0}.plant-card h3{font:28px Georgia}.plant-card p{font-size:14px;margin-top:6px}.plant-card svg{transition:transform .4s}.plant-card:hover svg{transform:translateY(-8px)}.care{margin-top:28px}@media(max-width:640px){.botanic-hero{grid-template-columns:1fr}.botanic-type{padding:38px 5vw}.botanic-art{height:360px}.plant-grid{grid-template-columns:1fr}.plant-card svg{max-height:330px}}
JavaScript
const reduced = matchMedia('(prefers-reduced-motion: reduce)').matches;
const dialog = document.querySelector('dialog');
$('[data-open]').on('click', function () {
$('#dialog-title').text($(this).attr('data-open'));
$('#dialog-description').text($(this).attr('data-description'));
dialog.showModal();
});
if (!reduced) document.querySelectorAll('[data-reveal]').forEach((el, i) => el.animate([{opacity:0,transform:'translateY(24px)'},{opacity:1,transform:'translateY(0)'}],{duration:650,delay:i*70,easing:'cubic-bezier(.2,.7,.2,1)'}));
$('[data-filter]').on('click',function(){const kind=this.dataset.filter;$('[data-filter]').attr('aria-pressed','false');$(this).attr('aria-pressed','true');let count=0;$('.plant-card').each(function(){this.hidden=kind!=='all'&&this.dataset.light!==kind;if(!this.hidden)count++;});$('#selection-status').text('Rośliny: '+count);});
Edytuj swój pen
Podaj adres e-mail użyty przy zapisie. Wyślemy link do edycji.