jade-page

byTest

create a project to build a todo of single page with minimal design

Home
Home

Comments (0)

No comments yet. Be the first!

Project Tasks10

#1

Implement Header for Home

To Do

As a frontend developer, implement the Header section for the Home page. This component uses `useRef` for `logoPathRef`, `logoFillRef`, `taglineRef`, `headerRef`, and `logoWrapRef`, plus `useState` for `scrolled`. On mount, a GSAP timeline animates the SVG jade-gem logo: sets `strokeDasharray`/`strokeDashoffset` for a draw-in effect on `hd-logo-path`, then fades in `hd-logo-fill`, fades out the stroke, and finally reveals the tagline with a y-offset fade. A passive scroll listener drives a `hue-rotate` CSS filter on the logo wrap (sinusoidal 0–30deg) and toggles the `hd-scrolled` class on the `<header>` element. Cleanup removes the scroll listener and kills the GSAP timeline.

AI 85%
Human 15%
High Priority
1.5 days
Frontend Developer
#7

Setup Design System Theme

To Do

As a Frontend Developer, configure the global design system and theme for jade-page. Set up CSS variables or a theme config file with all color tokens: primary (#4A90E2), primary_light (#A6C8F0), secondary (#F5A623), accent (#D0021B), highlight (#F8E71C), bg (#FFFFFF), surface (rgba(255,255,255,0.9)), text (#333333), text_muted (#9B9B9B), and border (rgba(204,204,204,0.5)). Install and configure framer-motion and gsap dependencies. Set up global CSS resets, base typography, and responsive breakpoints for both desktop and mobile. Configure the parallax scroll variable (--scroll) that is consumed by multiple section components.

AI 70%
Human 30%
High Priority
0.5 days
Frontend Developer
#8

Implement LocalStorage Data Layer

To Do

As a Frontend Developer, implement a data persistence utility module for task management using the browser's localStorage API. Create a TaskStorageService (or custom React hook, e.g. useTaskStorage) that handles: loading tasks on app init, saving tasks on every mutation (add, edit, delete, reorder), and serializing/deserializing task objects (id, text, completed, order). Ensure data persists across browser sessions as required by the SRD. Export helpers: getTasks(), saveTasks(tasks), clearTasks(). This module will be consumed by the TaskList and TaskInput section components.

AI 75%
Human 25%
High Priority
0.5 days
Frontend Developer
#2

Implement HeroIntro for Home

To Do

As a frontend developer, implement the HeroIntro section for the Home page. Uses `useRef` for `sectionRef` and `framer-motion`'s `useInView` (once, -80px margin) to trigger animations. The headline 'Focus on what matters' is split into words then characters via `splitIntoWords`/`splitIntoChars` helpers; each `<motion.span>` has `hi-headline-char` class and staggers in at 0.05s per character index with y:24→0 and opacity:0→1. A `<Feather>` icon from lucide-react fades/scales in. The subheadline paragraph uses a delayed fade-in after all characters complete. Two decorative parallax layers (`hi-deco-bg`, `hi-deco-mid`) use inline `translateY(calc(var(--scroll, 0) * -0.2px))` and `-0.4px` respectively.

Depends on:#1
Waiting for dependencies
AI 88%
Human 12%
High Priority
1 day
Frontend Developer
#3

Implement TaskInput for Home

To Do

As a frontend developer, implement the TaskInput section for the Home page. Manages `taskText`, `isFocused`, and `particleBursts` state via `useState`. `generateParticles` (memoized with `useCallback`) creates 8 particles with randomized angle, distance (30–60px), and size (5–10px). On `handleAddTask`, a burst object is pushed to `particleBursts` then cleared after 800ms via `setTimeout`; task text is reset. The `<motion.input>` animates `borderColor` and `boxShadow` on focus using framer-motion `animate`. `AnimatePresence` renders particle bursts as `<motion.div>` elements that animate out. Two parallax layers (`ti-bg-layer` with orbs, `ti-mid-layer` with dots) use CSS `var(--scroll)` translateY at -0.25px and -0.4px. Enter key triggers `handleAddTask` via `handleKeyDown`.

Depends on:#1
Waiting for dependencies
AI 87%
Human 13%
High Priority
1.5 days
Frontend Developer
#6

Implement Footer for Home

To Do

As a frontend developer, implement the Footer section for the Home page. Uses `useRef` for `separatorRef` and triggers a GSAP `backgroundPosition` animation on the separator element (100% 0, duration 3s, repeat -1, yoyo, power1.inOut) to create an animated gradient separator line. Three `<motion.p>` elements — `ftr-app-info`, `ftr-version`, and `ftr-copyright` — each have a `whileHover` transition that changes `color` to #4A90E2 and increases `letterSpacing` to 0.1em over 0.3s. Displays app name 'jade-page', version '1.0.0', and copyright '© 2026 jade-page'.

Depends on:#1
Waiting for dependencies
AI 92%
Human 8%
Low Priority
0.5 days
Frontend Developer
#9

Setup Global Task State

To Do

As a Frontend Developer, implement a global state management solution for the task list that is shared across section components (TaskInput, TaskList, EmptyState). Use React Context + useReducer (or a lightweight store like Zustand) to manage the canonical task array. Expose actions: ADD_TASK, EDIT_TASK, DELETE_TASK, TOGGLE_TASK, REORDER_TASKS. Wire the state to the localStorage data layer (tmp-localstorage-layer) so every state change is automatically persisted. TaskInput should dispatch ADD_TASK; TaskList should dispatch EDIT_TASK, DELETE_TASK, TOGGLE_TASK, REORDER_TASKS; EmptyState should render only when task array is empty.

Depends on:#8
Waiting for dependencies
AI 70%
Human 30%
High Priority
0.5 days
Frontend Developer
#4

Implement TaskList for Home

To Do

As a frontend developer, implement the TaskList section for the Home page. Initializes with 6 hardcoded `INITIAL_TASKS` objects (id, text, completed). Uses `framer-motion`'s `Reorder.Group`/`Reorder.Item` for drag-to-reorder, `useMotionValue` for y-value tracking, and `useAnimationFrame` for live updates. Each `TaskCard` subcomponent manages local `isEditing`/`editText` state, a `cardRef`, and a GSAP floating sway animation (staggered by `index * 0.2`, 3s duration, y:0→8→0, yoyo repeat). Includes `CheckIcon`, `EditIcon`, `SaveIcon`, `DeleteIcon`, and `DragHandle` SVG subcomponents. Callbacks `onToggle`, `onEdit`, `onDelete`, `onSaveEdit`, `onHover`, `onHoverEnd` are passed per card. Cards support inline editing via a text input that replaces the display text.

Depends on:#3
Waiting for dependencies
AI 83%
Human 17%
High Priority
2 days
Frontend Developer
#5

Implement EmptyState for Home

To Do

As a frontend developer, implement the EmptyState section for the Home page. Renders when the task list is empty. Contains a decorative parallax background layer (`es-parallax-bg`) with inline `translateY(calc(var(--scroll, 0) * -0.25px))`. The icon wrapper holds a `<motion.div>` glow ring that loops a `boxShadow` keyframe animation (amber rgba(245,166,35) at 0%, 18%, 6%, 0% opacity over 2s infinite). A breathing `<motion.div>` icon animates `scale: [1, 1.15, 1]` on 2s infinite loop. The SVG clipboard icon includes a body rect, clip rect, and three `<line>` elements for empty rows. Two `<motion.p>` elements — `es-message` and `es-encouragement` — fade in with y:10→0 at delays of 0.4s and 0.9s respectively.

Depends on:#4
Waiting for dependencies
AI 90%
Human 10%
Medium Priority
0.5 days
Frontend Developer
#10

Integrate Full Home Page

To Do

As a Tech Lead, verify the end-to-end integration of the Home page by composing all implemented sections (Header, HeroIntro, TaskInput, TaskList, EmptyState, Footer) into the root App component. Ensure: (1) global task state (tmp-global-state) is correctly passed to TaskInput, TaskList, and EmptyState; (2) the parallax --scroll CSS variable is updated via a single root-level scroll listener and consumed correctly by all sections; (3) GSAP and framer-motion animations do not conflict; (4) EmptyState shows/hides reactively as tasks are added/removed; (5) the app is responsive on desktop and mobile; (6) tasks persist across page reloads via localStorage. Note: depends on all section tasks (17de06d0, 75fcde4d, 8589bb15, 9fc3e25b, aecd3afd, d7482cac) and cross-cutting tasks.

Depends on:#3#1#7#5#2#6#9#4
Waiting for dependencies
AI 60%
Human 40%
High Priority
1 day
Tech Lead
Home design preview
Home: View Tasks
Home: Add Task
Home: View Updated List
Home: Edit Task
Home: Save Changes
Home: Delete Task
Home: Reorder Tasks