sara.mesquita commited on
Commit
4e56d4d
Β·
1 Parent(s): c33e98e

adds readme and context

Browse files
Files changed (2) hide show
  1. index.html +12 -5
  2. static/style.css +78 -7
index.html CHANGED
@@ -36,7 +36,7 @@
36
  <h3>How it works</h3>
37
  <div class="how-steps">
38
  <div class="how-step">
39
- <div class="how-num">πŸ“·</div>
40
  <div class="how-content">
41
  <strong>Snap a photo</strong>
42
  <span>Point your camera at any stray dog or cat.</span>
@@ -44,7 +44,7 @@
44
  </div>
45
  <div class="how-connector"></div>
46
  <div class="how-step">
47
- <div class="how-num">πŸ€–</div>
48
  <div class="how-content">
49
  <strong>AI identifies</strong>
50
  <span>Species, breed, color and condition β€” automatically.</span>
@@ -52,7 +52,7 @@
52
  </div>
53
  <div class="how-connector"></div>
54
  <div class="how-step">
55
- <div class="how-num">πŸ”</div>
56
  <div class="how-content">
57
  <strong>Smart matching</strong>
58
  <span>Checks if this animal has been seen before.</span>
@@ -60,7 +60,7 @@
60
  </div>
61
  <div class="how-connector"></div>
62
  <div class="how-step">
63
- <div class="how-num">πŸ—ΊοΈ</div>
64
  <div class="how-content">
65
  <strong>Map updates</strong>
66
  <span>Sighting linked to the animal's profile β€” or a new one is created.</span>
@@ -79,6 +79,11 @@
79
  </div>
80
  </aside>
81
 
 
 
 
 
 
82
  <div id="app">
83
 
84
  <!-- ══ ONBOARDING ══ -->
@@ -523,7 +528,9 @@
523
  <button class="nav-btn" data-screen="register"><span class="nav-icon"><i data-lucide="camera"></i></span><span>Report</span></button>
524
  <button class="nav-btn" data-screen="sightings"><span class="nav-icon"><i data-lucide="eye"></i></span><span>Sightings</span></button>
525
  </nav>
526
- </div>
 
 
527
 
528
  <!-- ══ RIGHT SIDEBAR (desktop only) ══ -->
529
  <aside id="sidebar-right">
 
36
  <h3>How it works</h3>
37
  <div class="how-steps">
38
  <div class="how-step">
39
+ <div class="how-num"><i data-lucide="camera"></i></div>
40
  <div class="how-content">
41
  <strong>Snap a photo</strong>
42
  <span>Point your camera at any stray dog or cat.</span>
 
44
  </div>
45
  <div class="how-connector"></div>
46
  <div class="how-step">
47
+ <div class="how-num"><i data-lucide="scan-line"></i></div>
48
  <div class="how-content">
49
  <strong>AI identifies</strong>
50
  <span>Species, breed, color and condition β€” automatically.</span>
 
52
  </div>
53
  <div class="how-connector"></div>
54
  <div class="how-step">
55
+ <div class="how-num"><i data-lucide="git-merge"></i></div>
56
  <div class="how-content">
57
  <strong>Smart matching</strong>
58
  <span>Checks if this animal has been seen before.</span>
 
60
  </div>
61
  <div class="how-connector"></div>
62
  <div class="how-step">
63
+ <div class="how-num"><i data-lucide="map-pin"></i></div>
64
  <div class="how-content">
65
  <strong>Map updates</strong>
66
  <span>Sighting linked to the animal's profile β€” or a new one is created.</span>
 
79
  </div>
80
  </aside>
81
 
82
+ <div class="phone-wrap">
83
+ <div class="phone-frame">
84
+ <div class="phone-btn phone-btn-vol-up"></div>
85
+ <div class="phone-btn phone-btn-vol-down"></div>
86
+ <div class="phone-btn phone-btn-power"></div>
87
  <div id="app">
88
 
89
  <!-- ══ ONBOARDING ══ -->
 
528
  <button class="nav-btn" data-screen="register"><span class="nav-icon"><i data-lucide="camera"></i></span><span>Report</span></button>
529
  <button class="nav-btn" data-screen="sightings"><span class="nav-icon"><i data-lucide="eye"></i></span><span>Sightings</span></button>
530
  </nav>
531
+ </div><!-- /#app -->
532
+ </div><!-- /.phone-frame -->
533
+ </div><!-- /.phone-wrap -->
534
 
535
  <!-- ══ RIGHT SIDEBAR (desktop only) ══ -->
536
  <aside id="sidebar-right">
static/style.css CHANGED
@@ -566,6 +566,9 @@
566
 
567
  #desktop-layout { display:contents; }
568
  #sidebar-left, #sidebar-right { display:none; }
 
 
 
569
 
570
  @media (min-width: 960px) {
571
  /* ── Page shell ── */
@@ -582,16 +585,82 @@
582
  background: #f0f7f2;
583
  }
584
 
585
- /* ── App column ── */
586
- #app {
 
587
  grid-column: 2;
588
- height: 100dvh;
589
- max-width: 390px;
590
- margin: 0;
591
  position: sticky;
592
  top: 0;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
593
  overflow: hidden;
594
- box-shadow: 0 0 48px rgba(56,140,89,.15), 0 0 0 1px rgba(56,140,89,.08);
 
595
  }
596
 
597
  /* ── Shared sidebar ── */
@@ -635,11 +704,13 @@
635
  position:relative; z-index:1;
636
  }
637
  .how-num {
638
- font-size:18px; flex-shrink:0;
639
  width:34px; height:34px;
640
  background:#e8f5ee; border-radius:10px;
641
  display:flex; align-items:center; justify-content:center;
 
642
  }
 
643
  .how-content { display:flex; flex-direction:column; gap:1px; padding-top:2px; }
644
  .how-content strong { font-size:13px; font-weight:700; color:#1e3d28; }
645
  .how-content span { font-size:11.5px; color:#7aaa8a; line-height:1.4; }
 
566
 
567
  #desktop-layout { display:contents; }
568
  #sidebar-left, #sidebar-right { display:none; }
569
+ /* Phone frame β€” invisible pass-through on mobile */
570
+ .phone-wrap, .phone-frame { display:contents; }
571
+ .phone-btn { display:none; }
572
 
573
  @media (min-width: 960px) {
574
  /* ── Page shell ── */
 
585
  background: #f0f7f2;
586
  }
587
 
588
+ /* ── Phone wrap β€” grid column + centering ── */
589
+ .phone-wrap {
590
+ display: flex;
591
  grid-column: 2;
592
+ align-items: center;
593
+ justify-content: center;
 
594
  position: sticky;
595
  top: 0;
596
+ height: 100dvh;
597
+ background: #f0f7f2;
598
+ }
599
+
600
+ /* ── Phone frame shell ── */
601
+ .phone-frame {
602
+ display: block;
603
+ position: relative;
604
+ background: #1c1c1e;
605
+ border-radius: 54px;
606
+ padding: 14px 12px;
607
+ width: 414px;
608
+ height: min(858px, calc(100dvh - 32px));
609
+ box-shadow:
610
+ 0 0 0 1.5px #3a3a3c,
611
+ 0 0 0 3px #1c1c1e,
612
+ 0 0 0 5px #48484a,
613
+ 0 40px 100px rgba(0,0,0,.35),
614
+ inset 0 0 0 1px rgba(255,255,255,.04);
615
+ }
616
+
617
+ /* Dynamic island */
618
+ .phone-frame::before {
619
+ content: '';
620
+ position: absolute;
621
+ top: 17px;
622
+ left: 50%;
623
+ transform: translateX(-50%);
624
+ width: 94px;
625
+ height: 30px;
626
+ background: #0a0a0a;
627
+ border-radius: 20px;
628
+ z-index: 10000;
629
+ box-shadow: inset 0 0 0 1px rgba(255,255,255,.06);
630
+ }
631
+
632
+ /* Home indicator */
633
+ .phone-frame::after {
634
+ content: '';
635
+ position: absolute;
636
+ bottom: 18px;
637
+ left: 50%;
638
+ transform: translateX(-50%);
639
+ width: 132px;
640
+ height: 5px;
641
+ background: rgba(255,255,255,.22);
642
+ border-radius: 3px;
643
+ z-index: 10000;
644
+ }
645
+
646
+ /* Side buttons */
647
+ .phone-btn { display: block; position: absolute; background: #3a3a3c; border-radius: 2px; }
648
+ .phone-btn-vol-up { left: -4px; top: 118px; width: 4px; height: 34px; border-radius: 2px 0 0 2px; }
649
+ .phone-btn-vol-down { left: -4px; top: 164px; width: 4px; height: 34px; border-radius: 2px 0 0 2px; }
650
+ .phone-btn-power { right: -4px; top: 138px; width: 4px; height: 58px; border-radius: 0 2px 2px 0; }
651
+
652
+ /* ── App screen inside frame ── */
653
+ #app {
654
+ display: flex;
655
+ flex-direction: column;
656
+ width: 390px;
657
+ height: 100%;
658
+ max-width: 390px;
659
+ margin: 0 auto;
660
+ border-radius: 42px;
661
  overflow: hidden;
662
+ position: relative;
663
+ box-shadow: none;
664
  }
665
 
666
  /* ── Shared sidebar ── */
 
704
  position:relative; z-index:1;
705
  }
706
  .how-num {
707
+ flex-shrink:0;
708
  width:34px; height:34px;
709
  background:#e8f5ee; border-radius:10px;
710
  display:flex; align-items:center; justify-content:center;
711
+ color: var(--green);
712
  }
713
+ .how-num svg { width:16px; height:16px; stroke:var(--green); stroke-width:2; fill:none; }
714
  .how-content { display:flex; flex-direction:column; gap:1px; padding-top:2px; }
715
  .how-content strong { font-size:13px; font-weight:700; color:#1e3d28; }
716
  .how-content span { font-size:11.5px; color:#7aaa8a; line-height:1.4; }