🐱 Cat Image Placeholder
+Breed Name Placeholder
+Temperament description placeholder
+diff --git a/README.md b/README.md
index 7751b8c..a8fde7e 100644
--- a/README.md
+++ b/README.md
@@ -18,7 +18,7 @@ Before a pull request can be merged:
request, and approvals from staff do not count — you review each other's
code.
2. **Every review comment must be marked resolved.** Reply to each one, fix it
- or explain why not, then click *Resolve conversation*.
+ or explain why not, then click _Resolve conversation_.
3. **Pushing new commits dismisses the approval**, so if you change something
after being approved, ask for another review. This is deliberate: what was
- approved is what gets merged.
\ No newline at end of file
+ approved is what gets merged.
diff --git a/t29-project-1/src/App.css b/t29-project-1/src/App.css
index 0928804..cd03c39 100644
--- a/t29-project-1/src/App.css
+++ b/t29-project-1/src/App.css
@@ -1,185 +1,63 @@
-.counter {
- font-size: 16px;
- padding: 5px 10px;
- border-radius: 5px;
- color: var(--accent);
- background: var(--accent-bg);
- border: 2px solid transparent;
- transition: border-color 0.3s;
- margin-bottom: 24px;
-
- &:hover {
- border-color: var(--accent-border);
- }
- &:focus-visible {
- outline: 2px solid var(--accent);
- outline-offset: 2px;
- }
-}
-
-.hero {
- position: relative;
-
- .base,
- .framework,
- .vite {
- inset-inline: 0;
- margin: 0 auto;
- }
-
- .base {
- width: 170px;
- position: relative;
- z-index: 0;
- }
-
- .framework,
- .vite {
- position: absolute;
- }
-
- .framework {
- z-index: 1;
- top: 34px;
- height: 28px;
- transform: perspective(2000px) rotateZ(300deg) rotateX(44deg) rotateY(39deg)
- scale(1.4);
- }
-
- .vite {
- z-index: 0;
- top: 107px;
- height: 26px;
- width: auto;
- transform: perspective(2000px) rotateZ(300deg) rotateX(40deg) rotateY(39deg)
- scale(0.8);
- }
-}
-
-#center {
+/* Page Wrapper */
+.app-container {
+ max-width: 800px;
+ margin: 0 auto;
+ padding: 1.5rem;
display: flex;
flex-direction: column;
- gap: 25px;
- place-content: center;
- place-items: center;
- flex-grow: 1;
-
- @media (max-width: 1024px) {
- padding: 32px 20px 24px;
- gap: 18px;
- }
+ gap: 1.5rem;
+ width: 100%;
}
-#next-steps {
+/* 1. FAVORITES STAR: Far Top Right */
+.top-bar {
display: flex;
- border-top: 1px solid var(--border);
- text-align: left;
-
- & > div {
- flex: 1 1 0;
- padding: 32px;
- @media (max-width: 1024px) {
- padding: 24px 20px;
- }
- }
-
- .icon {
- margin-bottom: 16px;
- width: 22px;
- height: 22px;
- }
-
- @media (max-width: 1024px) {
- flex-direction: column;
- text-align: center;
- }
-}
-
-#docs {
- border-right: 1px solid var(--border);
-
- @media (max-width: 1024px) {
- border-right: none;
- border-bottom: 1px solid var(--border);
- }
+ justify-content: flex-end; /* Pushes star to the right */
+ width: 100%;
}
-#next-steps ul {
- list-style: none;
- padding: 0;
+/* 2. NAVIGATION & CARD: Compact Center Layout */
+.nav-layout {
display: flex;
- gap: 8px;
- margin: 32px 0 0;
-
- .logo {
- height: 18px;
- }
+ flex-direction: row;
+ align-items: center;
+ justify-content: center;
+ gap: 1rem; /* Small gap keeps arrow buttons close to the card */
+ margin: 1rem auto 0 auto; /* Centers the layout block */
+ width: 100%;
+ max-width: 580px; /* RESTRICTS WIDTH: Stops buttons from flying far apart */
+}
- a {
- color: var(--text-h);
- font-size: 16px;
- border-radius: 6px;
- background: var(--social-bg);
- display: flex;
- padding: 6px 12px;
- align-items: center;
- gap: 8px;
- text-decoration: none;
- transition: box-shadow 0.3s;
+/* Make CatCard take central space naturally */
+.nav-layout > article,
+.nav-layout > .cat-card {
+ flex: 1;
+ width: 100%;
+}
- &:hover {
- box-shadow: var(--shadow);
- }
- .button-icon {
- height: 18px;
- width: 18px;
- }
- }
+/* Keep arrow buttons at their exact fixed size */
+.nav-layout > button {
+ flex-shrink: 0;
+}
- @media (max-width: 1024px) {
- margin-top: 20px;
+/* Mobile Responsive Adjustments */
+@media (max-width: 600px) {
+ .nav-layout {
flex-wrap: wrap;
- justify-content: center;
-
- li {
- flex: 1 1 calc(50% - 8px);
- }
-
- a {
- width: 100%;
- justify-content: center;
- box-sizing: border-box;
- }
}
-}
-#spacer {
- height: 88px;
- border-top: 1px solid var(--border);
- @media (max-width: 1024px) {
- height: 48px;
+ .nav-layout > article,
+ .nav-layout > .cat-card {
+ flex: 0 0 100%;
+ order: 1; /* Card on top */
}
-}
-.ticks {
- position: relative;
- width: 100%;
-
- &::before,
- &::after {
- content: '';
- position: absolute;
- top: -4.5px;
- border: 5px solid transparent;
+ .nav-layout > button:first-of-type {
+ order: 2; /* Previous button bottom-left */
}
- &::before {
- left: 0;
- border-left-color: var(--border);
- }
- &::after {
- right: 0;
- border-right-color: var(--border);
+ .nav-layout > button:last-of-type {
+ order: 3; /* Next button bottom-right */
}
}
diff --git a/t29-project-1/src/App.tsx b/t29-project-1/src/App.tsx
index 70c40e4..54f1f06 100644
--- a/t29-project-1/src/App.tsx
+++ b/t29-project-1/src/App.tsx
@@ -1,125 +1,31 @@
import { useState } from 'react';
-import heroImg from './assets/hero.png';
-import reactLogo from './assets/react.svg';
-import viteLogo from './assets/vite.svg';
+import { NavPrevious, NavNext } from './components/ActionButtons';
+import { CatCard } from './components/CatCard';
+import { Favorites } from './components/Favorites';
import './App.css';
-import Cat from './components/Cat';
-function App() {
- const [count, setCount] = useState(0);
+export default function App() {
+ const [isViewingFavorites, setIsViewingFavorites] = useState(false);
- return (
- <>
-
- Edit
-
-
-
Get started
- src/App.tsx and save to test HMR
-
🐱 Cat Image Placeholder
+Temperament description placeholder
+
Connect with us
-Join the Vite community
---
-
-
- GitHub
-
-
- -
-
-
- Discord
-
-
- -
-
-
- X.com
-
-
- -
-
-
- Bluesky
-
-
-
-