How jatin33/100daysofcode works
Purpose and Shape
This is a learning repository for JavaScript30-style browser exercises within a broader 100 Days of Code effort. It is not a unified application: each directory is an independently runnable static page focused on one DOM, CSS, or browser-API behavior. The root README.md documents the exercise sequence; there is no central router, shared application layer, or build output.
Paths: README.md, package.json, _config.yml
Entry Points and Execution Model
Open each exercise HTML file directly in a browser or serve its containing directory as static content. Most behavior is embedded in each HTML entry point; where separated, page-specific JavaScript and CSS are colocated. “START” filenames indicate challenge/starter variants rather than a common bootstrap.
Paths: JS and CSS Clock/index-START.html, ArrayCardio1/index-START.html, Flex Panel Gallery/index.html
DOM Interaction Exercises
A major component group demonstrates event-driven DOM updates: keyboard/mouse input, selection state, propagation, scrolling, and geometry-based presentation. Browser events are the primary control boundary: listeners transform event state into direct DOM/CSS changes.
Paths: Hold Shift and Check Checkboxes/index.html, Event Capture, Propagation, Bubbling and Once/index.html, Slide in on Scroll/index.html
UI State and Layout Demos
Several isolated pages couple JavaScript with CSS for interactive visual behavior, including draggable scrolling, dynamic CSS variables, navigation/highlighting, panels, timers, and shadows. State is generally ephemeral in the page runtime, except where browser storage is used.
Paths: Click and Drag/index.html, CSS Variables/index-START.html, Stripe Follow Along Nav/script.js
Data Transformation and Rendering
Array-method exercises process in-page datasets, while search/sorting examples render or reorder browser-visible results. This is client-only data flow: source data or markup → JavaScript array/string transformations → DOM output.
Paths: Array Cardio Day 2/index.html, Type Ahead/index.html, Sort Without Articles/index.html
Browser Media, Canvas, and Speech Boundaries
The repository directly integrates browser-provided capabilities that require runtime support and, for camera/microphone access, user permission. Media/player controls operate on a bundled video; webcam work captures stream imagery through canvas; speech pages depend on Web Speech APIs.
Paths: Custom Video Player/index.html, Custom Video Player/652333414.mp4, Webcam Fun/scripts.js, Speech Detection/index-START.html, Speech Synthesis/script.js
Persistence, External Services, and Deployment
LocalStorage is the principal client persistence boundary, serializing page state in the browser. The README references prior static hosting on Amazon S3 and identifies an external Cornify script for key-sequence effects. No backend service implementation is present. Per-exercise package.json files exist for speech/webcam directories, but the visible architecture remains static browser pages.
Paths: LocalStorage/index.html, Key Sequence Detection/index.html, Speech Detection/package.json, Webcam Fun/package.json
Main entry points: Hold Shift and Check Checkboxes/index.html Event-driven pages · Array Cardio Day 2/index.html Array and rendering demos · README.md Exercise sequence · Custom Video Player/index.html Custom video player
Components 25
Repository guide
- Exercise sequence · Lists the independently runnable exercises.
README.md
DOM interactions
- Event-driven pages · Listeners directly update DOM and CSS state.
Hold Shift and Check Checkboxes/index.html - Propagation demo
Event Capture, Propagation, Bubbling and Once/index.html - Scroll geometry demo
Slide in on Scroll/index.html
UI and data demos
- Clock page · Standalone HTML/CSS/JS exercise.
JS and CSS Clock/index-START.html - Array Cardio starter
ArrayCardio1/index-START.html - Flex panel gallery
Flex Panel Gallery/index.html - Drag scrolling
Click and Drag/index.html - CSS variable controls
CSS Variables/index-START.html - Follow-along nav · Updates navigation highlight geometry.
Stripe Follow Along Nav/script.js - Array and rendering demos · Transforms client-side data into visible results.
Array Cardio Day 2/index.html - Type-ahead search
Type Ahead/index.html - Article sorter
Sort Without Articles/index.html
Browser capabilities
- Custom video player
Custom Video Player/index.html - Bundled video
Custom Video Player/652333414.mp4 - Webcam and canvas · Captures a permitted camera stream and renders imagery through canvas.
Webcam Fun/scripts.js - Speech recognition · Uses the browser Web Speech recognition API.
Speech Detection/index-START.html - Speech synthesis · Uses the browser speech synthesis API.
Speech Synthesis/script.js - Browser runtime · Pages run directly as static browser content.
- Camera permission and stream
- Web Speech APIs
Persistence and external dependencies
- LocalStorage demo · Serializes page state in browser storage.
LocalStorage/index.html - Key sequence demo · Loads an external Cornify effect script.
Key Sequence Detection/index.html - Browser LocalStorage
- Cornify script
Connections 18
- Exercise sequence → Clock page: documents
- Exercise sequence → Array Cardio starter: documents
- Browser runtime → Clock page: runs
- Browser runtime → Event-driven pages: dispatches events to
- Browser runtime → Drag scrolling: runs
- Browser runtime → Array and rendering demos: runs
- Browser runtime → Custom video player: runs
- Browser runtime → LocalStorage demo: runs
- Event-driven pages → Propagation demo: includes pattern shown by
- Event-driven pages → Scroll geometry demo: includes pattern shown by
- Array and rendering demos → Type-ahead search: search variant
- Array and rendering demos → Article sorter: sorting variant
- Custom video player → Bundled video: plays
- Webcam and canvas → Camera permission and stream: requests
- Speech recognition → Web Speech APIs: uses recognition
- Speech synthesis → Web Speech APIs: uses synthesis
- LocalStorage demo → Browser LocalStorage: persists state in
- Key sequence demo → Cornify script: loads