Skip to content

Website redesign#1450

Merged
ericmj merged 29 commits intomainfrom
website-redesign
Mar 30, 2026
Merged

Website redesign#1450
ericmj merged 29 commits intomainfrom
website-redesign

Conversation

@ericmj
Copy link
Copy Markdown
Member

@ericmj ericmj commented Mar 30, 2026

No description provided.

paulo-valim and others added 29 commits March 16, 2026 13:25
Co-authored-by: Eric Meadows-Jönsson <eric.meadows.jonsson@gmail.com>
Phoenix 1.7+ defaults to esbuild via the Elixir wrapper. The project
already uses Tailwind via its Elixir wrapper, so webpack was the only
remaining reason for a Node.js dependency. This migration:

- Adds esbuild Elixir wrapper with NODE_PATH for Phoenix package resolution
- Vendors highlight.js core + elixir language (only npm dep, fully self-contained)
- Removes webpack, Babel, yarn, package.json, and node_modules entirely
- Updates Dockerfile to remove nodejs/yarnpkg apt packages
- Simplifies assets.deploy to just esbuild + tailwind + phx.digest

Both esbuild and Tailwind are now standalone binaries managed by Hex.
Zero Node.js tooling required. Build output drops from 397KB to 165KB.
Fix latest_version/2 to use with_docs_releases instead of releases when
falling back to unstable versions. Add docs_tarball_url to sidebar_assigns
so the docs download link works on all package tabs.
The lg:px-0 class removed horizontal padding at viewport widths between
the lg breakpoint (1024px) and the max-w-7xl container width (1280px),
causing content to touch the screen edges.
- Make sidebar stack below content on mobile (flex-col lg:flex-row)
- Add horizontal scroll for tab overflow on narrow screens
- Prevent version badge and tab text from wrapping
- Stack header buttons below description on mobile
- Reduce mobile spacing between buttons and tabs
- Add px-4 padding to package layout containers
- Extract downloads chart into shared component (Components.Chart)
- Use smooth cubic Bezier curves for chart line with clamped control points
- Fix chart gradient by using SVG attributes instead of style properties
- Add top padding to chart viewBox to prevent stroke clipping
Replace emoji icons (😍, 🔥, 👀) in package column headers with
professional heroicons (arrow-trending-up, sparkles, arrow-path).
Also remove lg:px-0 from homepage containers.
Wrap the Organization repository checkbox in a mb-4 div to match the
spacing of other permission groups.
- Change content wrapper from <div> to <main> in app layout to provide
  the required main landmark
- Change feature card headings from <h3> to <h2> to maintain proper
  heading order (h1 → h2) without skipping levels
Adapt integration tests to the new dashboard layout where billing has
its own route (/dashboard/orgs/:name/billing), modals use
Phoenix.LiveView.JS instead of Bootstrap, and flash messages use the
new .flash-message component.

Fix billingCheckout to send JSON instead of form-urlencoded so token
objects are properly serialized. Set hexpm_billing globals
(api_url, csrf_token, success callback) before checkout HTML renders
so the SCA SetupIntent flow works through the billing proxy.
HEEx treats script tag content as raw text, so Elixir string
interpolation (#{host}) doesn't work. Use EEx tag (<%= host %>) instead.
Tailwind needs to scan lib/ for class names used in templates.
Previously lib/ was copied after mix assets.deploy, so the production
CSS was missing all utility classes.
Replace inline style attributes with Tailwind hidden class in the
mobile letter browser. Inline style attributes cannot use CSP nonces,
only <style> tags can.
Co-authored-by: Eric Meadows-Jönsson <eric.meadows.jonsson@gmail.com>
Use Tailwind width classes for the password strength bar instead of
setting style.width via JS, and use the hidden class for the remove
password form.
# Conflicts:
#	assets/css/template/_dashboard.scss
#	lib/hexpm/billing/local.ex
#	lib/hexpm_web/controllers/dashboard/organization_controller.ex
#	lib/hexpm_web/templates/dashboard/organization/_billing.html.eex
#	lib/hexpm_web/templates/dashboard/organization/index.html.eex
#	lib/hexpm_web/views/dashboard/organization_view.ex
#	mix.lock
@ericmj ericmj merged commit bc4d208 into main Mar 30, 2026
24 of 25 checks passed
@ericmj ericmj deleted the website-redesign branch March 30, 2026 17:59
Ch4s3 added a commit to Ch4s3/hexpm that referenced this pull request Apr 28, 2026
Resolves conflicts with the website redesign (PR hexpm#1450):
- Use upstream's hooks-based app.js (drops jQuery/Bootstrap)
- Keep upstream's autofocus_search for page controller
- Use upstream's mix.lock (version bumps only)
- Remove old _home.scss, yarn.lock, index.html.eex (replaced by redesign)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants