72 Commits
Author SHA1 Message Date
Keith Solomon 3c786ee9d9 🔧 chore: Import team-grid block CSS into theme 2026-07-25 13:27:16 -05:00
Keith Solomon b7477306d8 🐞 fix: Adjust menu width
Deploy to Dreamhost (dev) / build (push) Successful in 34s
Sync TODOs with Issues / sync_todos (push) Successful in 5s
2026-07-25 10:45:43 -05:00
Keith Solomon 0be6800d88 🔧 chore: Import services-list block CSS into theme 2026-07-24 23:43:24 -05:00
Keith Solomon bd035501b7 🐞 fix: Round corners of hero intro
Deploy to Dreamhost (dev) / build (push) Successful in 35s
Sync TODOs with Issues / sync_todos (push) Successful in 7s
2026-07-14 22:32:01 -05:00
Keith Solomon ecccfe8c70 🐞 fix: Adjust font size and line height for page hero services intro, and update margin for CTAs container
Deploy to Dreamhost (dev) / build (push) Successful in 37s
Sync TODOs with Issues / sync_todos (push) Successful in 6s
2026-07-14 22:01:54 -05:00
Keith Solomon fbd3b7feb0 🐞 fix: Update Calls to Action field label and name, adjust layout settings, and enhance page hero services structure
Deploy to Dreamhost (dev) / build (push) Successful in 37s
Sync TODOs with Issues / sync_todos (push) Successful in 7s
2026-07-14 21:50:27 -05:00
Keith Solomon 8c3284399e 🐞 fix: Remove Chrome tint implementation
Deploy to Dreamhost (dev) / build (push) Successful in 33s
Sync TODOs with Issues / sync_todos (push) Successful in 6s
2026-07-12 15:30:54 -05:00
Keith Solomon 5bffd36ff8 🐞 fix: Update chrome tint implementation to use opacity for visibility and adjust related tests
Deploy to Dreamhost (dev) / build (push) Successful in 35s
Sync TODOs with Issues / sync_todos (push) Successful in 5s
2026-07-12 15:21:58 -05:00
Keith Solomon 7267f67d99 🐞 fix: Update chrome tint visibility handling to prevent dark bars over page content and enhance related tests
Deploy to Dreamhost (dev) / build (push) Successful in 36s
Sync TODOs with Issues / sync_todos (push) Successful in 6s
2026-07-12 15:13:55 -05:00
Keith Solomon 2b0daaa699 🐞 fix: Update footer color for chrome tinting and adjust related tests for iOS compatibility
Deploy to Dreamhost (dev) / build (push) Successful in 34s
Sync TODOs with Issues / sync_todos (push) Successful in 5s
2026-07-12 14:50:34 -05:00
Keith Solomon c82e6187af feature: Add independent chrome tint elements for iOS 26+ compatibility and enhance related tests
Deploy to Dreamhost (dev) / build (push) Successful in 33s
Sync TODOs with Issues / sync_todos (push) Successful in 6s
2026-07-12 14:30:41 -05:00
Keith Solomon ca367364f8 feature: Implement dynamic browser chrome tinting for header and footer visibility
Deploy to Dreamhost (dev) / build (push) Successful in 36s
Sync TODOs with Issues / sync_todos (push) Successful in 6s
2026-07-12 13:57:20 -05:00
Keith Solomon e38511126d 🐞 fix: Adjust mobile layout for blog page and add regression tests
Deploy to Dreamhost (dev) / build (push) Successful in 36s
Sync TODOs with Issues / sync_todos (push) Successful in 6s
2026-07-12 13:19:53 -05:00
Keith Solomon ae8a80484f 🐞 fix: Update media query breakpoints for navigation styles and add responsive tests
Deploy to Dreamhost (dev) / build (push) Successful in 37s
Sync TODOs with Issues / sync_todos (push) Successful in 7s
2026-07-08 18:55:19 -05:00
Keith Solomon 53b87c20fd feature: Style single post template
Deploy to Dreamhost (dev) / build (push) Successful in 33s
Sync TODOs with Issues / sync_todos (push) Successful in 6s
2026-07-05 17:04:30 -05:00
Keith Solomon 5e08b78d62 🐞 fix: Adjust card background 2026-07-05 16:39:08 -05:00
Keith Solomon 43e3316a70 feature: Style pagination
Deploy to Dreamhost (dev) / build (push) Successful in 34s
Sync TODOs with Issues / sync_todos (push) Successful in 5s
2026-07-05 16:13:21 -05:00
Keith Solomon 1544a7a04b 🐞 fix: Adjust line-height
Deploy to Dreamhost (dev) / build (push) Successful in 32s
Sync TODOs with Issues / sync_todos (push) Successful in 6s
2026-07-05 15:52:04 -05:00
Keith Solomon c2a1eed2cf feature: Sidebar styling
Deploy to Dreamhost (dev) / build (push) Successful in 34s
Sync TODOs with Issues / sync_todos (push) Successful in 5s
2026-07-05 15:45:54 -05:00
Keith Solomon e5cc42f048 🐞 fix: Get rid of extra margin in admin menu 2026-07-05 14:47:44 -05:00
Keith Solomon 21657173e0 feature: Post cards built
Deploy to Dreamhost (dev) / build (push) Successful in 33s
Sync TODOs with Issues / sync_todos (push) Successful in 5s
2026-07-05 14:25:33 -05:00
Keith Solomon 19d4dfd89c Merge branch 'main' of ssh://git.keithsolomon.net:222/Solo-Web-Works/CWC
Deploy to Dreamhost (dev) / build (push) Successful in 35s
Sync TODOs with Issues / sync_todos (push) Successful in 5s
2026-07-05 12:07:59 -05:00
Keith Solomon aafea68342 feat(blog): style the post card body, title, byline, and Read more link 2026-07-05 11:01:06 -05:00
Keith Solomon 02f9999621 🐞 fix: Update header/hero to swap based on service page children
Deploy to Dreamhost (dev) / build (push) Successful in 34s
Sync TODOs with Issues / sync_todos (push) Successful in 6s
2026-07-05 10:36:27 -05:00
Keith Solomon 2d3d93aa89 🐞 fix: Adjust editor font
Deploy to Dreamhost (dev) / build (push) Successful in 34s
Sync TODOs with Issues / sync_todos (push) Successful in 6s
2026-07-04 21:30:28 -05:00
Keith Solomon cb0c8864f7 feat(blog): style the post-list page title 2026-07-04 20:29:54 -05:00
Keith Solomon 001b8c07c3 🐞 fix: Adjust dropdown z-index so the menu shows up above the map
Deploy to Dreamhost (dev) / build (push) Successful in 34s
Sync TODOs with Issues / sync_todos (push) Successful in 6s
2026-07-04 19:36:30 -05:00
Keith Solomon 01c6fb7831 feature: Set up contact info block and map
Deploy to Dreamhost (dev) / build (push) Successful in 34s
Sync TODOs with Issues / sync_todos (push) Successful in 7s
2026-07-04 19:22:26 -05:00
Keith Solomon d207b2e0e8 fix(contact): use correct views-path for contact-info import 2026-07-04 13:50:28 -05:00
Keith Solomon bcb2486576 feat(contact): add two-column layout and icon styles 2026-07-04 13:40:57 -05:00
Keith Solomon dddb4b8c54 feature: Build interior layout
Deploy to Dreamhost (dev) / build (push) Successful in 38s
Sync TODOs with Issues / sync_todos (push) Successful in 7s
2026-07-01 18:33:01 -05:00
Keith SolomonandClaude 6452f28932 Refine hero: vector full-width, image top padding, content flush left
- styles/blocks/page-hero.css:
  - .page-hero__vector: width is now 100% (was clamp(28rem, 60vw, 56rem))
    so the orange linework spans the full width of the hero. The SVG
    scales proportionally (1920x489 viewBox).
  - .page-hero__media: added top: clamp(2rem, 4vw, 4rem) so the image
    has visible top padding inside the hero (in addition to overflowing
    the bottom). Reduced right offset to clamp(0.5rem, 2vw, 2rem) so
    the image sits closer to the right edge. Width is 'auto' with
    max-width: clamp(20rem, 30vw, 28rem) so the image's natural aspect
    ratio (490x613 portrait) is preserved.
- views/partials/page-hero.php: .page-hero__content is now 'container
  mx-auto px-0!' so the breadcrumbs, H1, and intro sit flush left at
  x=0, matching the logo's left edge (which is also at x=0 thanks to
  the header's px-0! override on its container).

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-01 16:39:29 -05:00
Keith SolomonandClaude 2bda7f21eb Restructure hero: image at natural size overflowing, intro as text, no hard-coded copy
- views/partials/page-hero.php: removed the page-intro partial call. The
  intro is now rendered inline as a single .page-hero__intro div
  containing the editor-supplied intro text only (no hard-coded
  heading). The H1 is rendered with a dedicated .page-hero__heading
  class for typography control. Breadcrumbs + H1 + intro are in a
  single .page-hero__content container.
- views/partials/page-intro.php: deleted (no longer used).
- styles/blocks/page-hero.css: rewritten layout. The hero has a min-height
  of clamp(31rem, 38vw, 36rem). .page-hero__media is a foreground
  absolutely-positioned img on the right (no mask, no cover, no
  object-fit), with bottom: -10% so the image's bottom hangs over
  the bottom edge of the hero. The vector is positioned at
  bottom: clamp(1.5rem, 4vw, 3rem) with some spacing from the bottom
  edge, full-width on the left. Both elements stay above the content
  layer (z-index 10) and below the breadcrumb/title text. The H1 uses
  Quincy serif at clamp(2.5rem, 6vw, 4.5rem). The intro text is
  capped at 36rem to sit alongside the H1 without spanning the full
  hero width.
- tests/inner-page.spec.js: removed the now-obsolete
  .page-hero__intro-heading / .page-hero__intro-text assertions (the
  intro is a single text block now).

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-01 16:11:28 -05:00
Keith SolomonandClaude e221f62ef7 Refine hero: gradient backdrop, intro inside hero, image on right, vector visible
- styles/blocks/page-hero.css: add blue-to-teal gradient to .page-hero (matches
  homepage-hero). Fix image mask direction (right-to-left fade) so the image
  is visible on the right and fades to transparent on the left. Reposition
  the vector to span the full bottom of the hero at z-index 2 (above the
  media layer, below content). Add .page-hero__intro and .page-hero__intro-inner
  grid rules for the new two-column heading + body block.
- views/partials/page-hero.php: drop bg-dark / bg-cover / bg-no-repeat
  utilities (the gradient comes from CSS now). Simplify the heading render.
  Load the page-intro partial inside .page-hero__content, below the heading.
- views/partials/page-intro.php: rewrite as a fragment for embedding inside
  the hero - a two-column heading (hard-coded 'Our Work') + body grid.
  Returns early when the intro field is empty.
- page.php: remove the page-intro partial call (it's now loaded from
  page-hero.php).
- tests/inner-page.spec.js: switch the selector from .page-intro to
  .page-hero__intro. Update the order assertions to verify the intro is
  a descendant of the hero (not a sibling below it).

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-01 15:25:39 -05:00
Keith Solomon edf3d6c5ce Add page-hero media layer CSS and import into blocks bundle 2026-07-01 10:22:29 -05:00
Keith Solomon 01101ff712 fix: update mobile navigation styles and comment out unused code
Deploy to Dreamhost (dev) / build (push) Successful in 35s
Sync TODOs with Issues / sync_todos (push) Successful in 7s
2026-06-28 20:52:40 -05:00
Keith Solomon 3db0ceaf8d fix: lock body scroll while menu is open, scroll menu internally
Per the user's request:

- Page scroll is locked when the mobile menu is open: add an
  :has() selector that applies overflow: hidden + touch-action: none to
  the <body> when the .nav-main__toggle has aria-expanded=true. Verified
  with mouse wheel and PageDown: window.scrollY stays at 0.

- Menu scrolls internally when its content overflows: switch
  .menu-vdi's 'overflow-hidden' to 'overflow-y: auto' with
  'overscroll-behavior: contain' so scroll gestures feed the menu
  rather than chain-scroll to the body behind it.

- Cap the menu at viewport height instead of growing: change
  'min-height: calc(100vh - var(--hgtHeader))' to
  'max-height: calc(100vh - var(--hgtHeader))' so the menu fills the
  visible space below the header and any overflowing items become
  scrollable inside the menu.
2026-06-28 19:59:10 -05:00
Keith Solomon 380e2d9015 fix: address remaining mobile menu issues
Per the user's feedback, fix the issues still visible in the menu:

1. Hero rendered over the menu: bumped menu z-index from 10 to 100 so it
   always sits above the hero's stacked elements.

2. List markers on items: added explicit list-style: none / padding: 0 on
   the menu <ul> and items to override the base typography rule that sets
   list-style-type: disc and padding: 0 1rem on every <ul>.

3. Blue links: the base typography rule 'a, .link { color: var(--color-bodylinks); }'
   has specificity 0,1,1 and was beating the menu text-white rule. Override
   with color: var(--color-white) !important on menu links and child links
   inside the mobile media query.

4. Full borders with rounded corners on child items: change child item
   border from '2px solid var(--color-secondary); border-radius: 0.5rem'
   to 'border-bottom: 2px solid var(--color-secondary); border-radius: 0'
   so each child gets only a bottom border (matching the user's spec).

5. Menu items now use plain CSS (color/display/padding/font-weight) instead
   of @apply text-white/no-underline to give them explicit override
   specificity against the base styles.

6. Toggle button: changed the SVG width from 2rem to 1.5rem in
   styles/components/site-header.css so the hamburger and X icons render
   at a square 1.5rem x 1.5rem aspect ratio inside the (intentionally)
   rectangular orange button.

Nav-main template unchanged from the previous commit (Contact button +
social icons already in place). Header test still passes - the button box
itself (72x45) is unchanged, only the icon aspect changed.
2026-06-28 18:05:12 -05:00
Keith Solomon 09d42ba2a9 fix: style mobile menu per spec
Per the user's spec, the mobile menu is:
- Dark navy background, white links, 95% viewport width
- Parent items (those with child links) get an orange chevron
- Child items get an orange border; nothing else gets any border
- Bottom of menu has a Contact link styled as a button and social icons

Changes:

1. Menu CSS (styles/navigation/nav-mobile-sliding.css):
   - Switch the menu background from white to bg-cwc-blue-02 (dark navy)
   - Switch menu item text from black to white
   - Hide the existing .menu-vdi__submenu and show the children inline under their
     parent with a 2px orange border, rounded corners, and white text
   - Style the existing chevron SVG inside the parent <button> with the orange
     secondary color so it's visible against the navy background
   - Add a .menu-vdi__footer block (Contact button + social icons) anchored to
     the bottom of the menu panel, shown only when the toggle is aria-expanded
   - Hide .menu-vdi__footer entirely at desktop so it doesn't leak into the
     page DOM and trigger accessibility warnings

2. Menu template (views/components/nav-main.php):
   - Append a .menu-vdi__footer div after the menu items containing a Contact
     link to home_url('/contact/') and the existing social-media partial
   - The footer renders inside <nav> but is positioned via fixed CSS to align
     with the menu panel

Header/toggle button unchanged - the orange/coral rounded button design from
the original mobile-fidelity plan was already correct and is left alone.
2026-06-28 17:32:05 -05:00
Keith Solomon 2399023286 🐞 fix: Adjust social icon styling 2026-06-28 14:11:46 -05:00
Keith Solomon 0a48a1938c fix: align mobile footer navigation 2026-06-27 22:54:17 -05:00
Keith Solomon 20d25e966d fix: match mobile footer design 2026-06-27 22:49:31 -05:00
Keith Solomon a360b8192a fix: complete mobile carousel and social updates 2026-06-27 18:00:32 -05:00
Keith Solomon 6d3bb76b17 fix: match mobile header and hero design 2026-06-27 17:38:49 -05:00
Keith Solomon ac2d5dad98 🐞 fix: Adjust list styles
Deploy to Dreamhost (dev) / build (push) Successful in 31s
Sync TODOs with Issues / sync_todos (push) Successful in 6s
2026-06-21 17:01:00 -05:00
Keith Solomon f3c97efcd7 🐞 feat: Add contact information section to footer with address, email, and phone icons
Deploy to Dreamhost (dev) / build (push) Successful in 30s
Sync TODOs with Issues / sync_todos (push) Successful in 6s
2026-06-21 15:12:03 -05:00
Keith Solomon 0c1594a091 🐞 fix: Adjust main padding
Deploy to Dreamhost (dev) / build (push) Successful in 32s
Sync TODOs with Issues / sync_todos (push) Successful in 6s
2026-06-20 21:22:49 -05:00
Keith Solomon df6e8cd7ef 🐞 fix: Add gradient fade for logo scroller track
Deploy to Dreamhost (dev) / build (push) Successful in 2m34s
Sync TODOs with Issues / sync_todos (push) Successful in 6s
2026-06-20 21:11:04 -05:00
Keith Solomon 032e7fe0a5 🐞 fix: Adjust button styling
Deploy to Dreamhost (dev) / build (push) Successful in 31s
Sync TODOs with Issues / sync_todos (push) Successful in 6s
2026-06-20 20:35:44 -05:00
Keith Solomon 5496a8e725 🐞 fix: Adjust dropdown z-index
Sync TODOs with Issues / sync_todos (push) Successful in 6s
2026-06-20 11:49:04 -05:00