Skip to content
This repository was archived by the owner on Oct 9, 2026. It is now read-only.

Restore 2019 freeCodeCamp projects: valid HTML, working layout, no dead media - #1

Merged
urtuba merged 8 commits into
masterfrom
restore
Oct 9, 2026
Merged

urtuba merged 8 commits into
masterfrom
restore

Conversation

@urtuba

@urtuba urtuba commented Oct 9, 2026

Copy link
Copy Markdown
Owner

Restores the three freeCodeCamp Responsive Web Design projects from 2019 into a small, valid static site. The original pages are kept at tag original-2019.

What changes

  • Every page is a complete HTML document (doctype, lang, charset, viewport, title). The freeCodeCamp test script is removed.
  • Tribute page: the dead image (410 Gone) is replaced by a public-domain portrait stored in the repo; the #body selector bug is fixed.
  • Survey form: the duplicated Age field, unclosed div and broken label for targets are fixed; the radios and checkboxes have their own labels; the dropdown values are no longer volvo/saab; the name field accepts spaces. The form sends nothing anywhere.
  • Landing page: the misspelled media query (max-with) and invalid CSS are replaced with a layout that stacks at 700px and below. The dead Vimeo embed becomes a public-domain photo with text, and the hot-linked MLB logo becomes a text logo. The email form no longer posts to freecodecamp.com.
  • index.html links the three pages and the freeCodeCamp certificate.
  • CI validates every page with html-validate 11.16.2 (recommended rules, none turned off).
  • README with live demo links, the certificate, image credits and the MIT license.

The live demo goes up after the merge: first the repo is renamed to fcc-responsive-web-design, then GitHub Pages is turned on.

Checks

  • html-validate passes on all four pages.
  • All three pages were checked at 375px wide (no horizontal scroll) and on desktop.
  • Both image licenses were confirmed as public domain on Wikimedia Commons.

🤖 Generated with Claude Code — changes by AI agent Claude Sonnet 5.5, two fixes and review by Claude Opus 5.5.

urtuba added 8 commits October 9, 2026 18:35
The pages were fragments: no doctype, no head, no charset, no viewport
and a style block after the content. Browsers rendered them in quirks
mode and phones showed the desktop layout.

Each page now has a doctype, lang, charset, viewport, title, the style
block in head and the content in body. The freeCodeCamp test script
(bundle.js) is removed from the pages that loaded it. Line endings are
now LF. Content, selectors and behavior are otherwise unchanged.

Made by AI agent: Claude Sonnet 5.5 (claude-sonnet-5-5).
The page background never applied because the selector was #body but
the element has no such id. The portrait was hot-linked from a magazine
site and is gone.

The selector is now body. The portrait is a local 500 px copy of a
public-domain 1860 photograph from Wikimedia Commons, with alt text
and a caption that credits the author and links to the source. The
text keeps its meaning; punctuation, dates and grammar are corrected.

Made by AI agent: Claude Sonnet 5.5 (claude-sonnet-5-5).
The form had a duplicated Age row, labels that pointed to nothing, a
dropdown with car brands as values, a name pattern that rejected any
name with a space, an unclosed div and a textarea nobody could submit.
It also posted to the page itself with method post.

Each label now points to a real id. The score and the lectures are
fieldsets with a legend and one label per option. The checkboxes share
the name "lectures" instead of "1" to "4". The dropdown values are
english and turkish. The name field uses maxlength 64 instead of the
pattern. The textarea has an id and a name. The form uses method get and
has no action, so nothing is sent anywhere. Inline styles moved into the
style block.

Made by AI agent: Claude Sonnet 5.5 (claude-sonnet-5-5).
The media query was misspelled (max-with) and held an invalid scale()
declaration, so nothing responded to small screens. The header logo was
hot-linked from a real brand's site, the video was a Vimeo embed, two
nav links pointed to the same place and the form posted to
freecodecamp.com.

The header is now sticky and stacks at 700 px or less with smaller
fonts; at 375 px the page has no horizontal scroll. The logo is plain
text with an invented name. The video is replaced by a section with a
local public-domain photo (Library of Congress, via Wikimedia Commons)
and a short text, and the Vimeo script is gone. The nav points to
#features, #how-it-is-made and #form, which all exist. The email form
has no action, uses method get, is required and has a hidden label.
"adress" is fixed.

Made by AI agent: Claude Sonnet 5.5 (claude-sonnet-5-5).
The three pages had no entry point and nothing stopped them from
breaking again.

index.html links the three projects, the freeCodeCamp certificate and
the repository. The workflow runs html-validate (pinned to 11.16.2) on
every push and pull request, on Node 24 because that version needs
Node 22.22 or newer. .htmlvalidate.json uses the recommended rules and
no rule is switched off.

To pass the validator: the doctype is uppercase, the submit inputs are
buttons, and the lecture checkboxes have unique names (lecture-1 to
lecture-4, value yes) instead of the shared name "lectures".

Made by AI agent: Claude Sonnet 5.5 (claude-sonnet-5-5).
The repo had no README and no license, so nobody knew what it was, how
to check it, where the images came from or whether they could reuse it.

The README explains the restoration, links the live demo and the
freeCodeCamp certificate, describes the three projects, shows how to
check them locally and credits both images with source and license.
LICENSE is MIT.

Made by AI agent: Claude Sonnet 5.5 (claude-sonnet-5-5).
The repository will be renamed to fcc-responsive-web-design before GitHub Pages is turned on, to match the other repositories. The README already uses the new name; the index page now does too. The link works once the rename is done, which happens before the site goes live.

Made by AI agent: Claude Opus 5.5 (claude-opus-5-5).
"This form is created to take feedbacks of course's participants." becomes "This form collects feedback from the course's participants." Feedback is uncountable in English.

Made by AI agent: Claude Opus 5.5 (claude-opus-5-5).
@urtuba
urtuba merged commit 08dbea9 into master Oct 9, 2026
2 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant