Compare commits

...

7 commits

Author SHA1 Message Date
c18ad4a3e2 Update composer lock file 2025-07-19 12:11:22 -04:00
39db8dfa66 Update LinkIt to version that supports latest Drupal 10.5.1 2025-07-19 12:11:19 -04:00
5aa67953e3 Make the X perfect
Ref #114 #126
2025-07-15 22:48:36 -04:00
0eaafd6208 Give up on linear gradient and do a 1px wide background
Also move more elementy stuff from components, and hope the weird
small-screen adjustments are not applicable anymore?

Ref #114 #126
2025-07-15 22:48:15 -04:00
161844eb8f How does this look the same
Ref #114 #126
2025-07-15 22:21:25 -04:00
2637b987a3 Use hamburger menu for tablet as well, and hide drawer completely when closed
Ref #114 #126
2025-07-15 20:32:22 -04:00
03a075e255 Format source code (no other changes) 2025-07-15 20:21:31 -04:00
6 changed files with 177 additions and 189 deletions

View file

@ -88,7 +88,7 @@
"drupal/insert": "^3", "drupal/insert": "^3",
"drupal/key": "^1.14", "drupal/key": "^1.14",
"drupal/link_attributes": "^1.9", "drupal/link_attributes": "^1.9",
"drupal/linkit": "^6", "drupal/linkit": "^7",
"drupal/mailchimp": "^2", "drupal/mailchimp": "^2",
"drupal/markdown": "^3", "drupal/markdown": "^3",
"drupal/menu_link_config": "^1.0@alpha", "drupal/menu_link_config": "^1.0@alpha",

81
composer.lock generated
View file

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "40ffbeecfdd8848d97ffd7fc52a68af7", "content-hash": "90e491a31bd6246e3104f4f0898a743a",
"packages": [ "packages": [
{ {
"name": "abraham/twitteroauth", "name": "abraham/twitteroauth",
@ -831,16 +831,16 @@
}, },
{ {
"name": "consolidation/annotated-command", "name": "consolidation/annotated-command",
"version": "4.10.1", "version": "4.10.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/consolidation/annotated-command.git", "url": "https://github.com/consolidation/annotated-command.git",
"reference": "362310b13ececa9f6f0a4a880811fa08fecc348b" "reference": "e550ea4f177f199e0e9451168342bf3f321d92b0"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/consolidation/annotated-command/zipball/362310b13ececa9f6f0a4a880811fa08fecc348b", "url": "https://api.github.com/repos/consolidation/annotated-command/zipball/e550ea4f177f199e0e9451168342bf3f321d92b0",
"reference": "362310b13ececa9f6f0a4a880811fa08fecc348b", "reference": "e550ea4f177f199e0e9451168342bf3f321d92b0",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -881,9 +881,9 @@
"description": "Initialize Symfony Console commands from annotated command class methods.", "description": "Initialize Symfony Console commands from annotated command class methods.",
"support": { "support": {
"issues": "https://github.com/consolidation/annotated-command/issues", "issues": "https://github.com/consolidation/annotated-command/issues",
"source": "https://github.com/consolidation/annotated-command/tree/4.10.1" "source": "https://github.com/consolidation/annotated-command/tree/4.10.2"
}, },
"time": "2024-12-13T19:55:40+00:00" "time": "2025-07-16T20:54:09+00:00"
}, },
{ {
"name": "consolidation/config", "name": "consolidation/config",
@ -8250,17 +8250,17 @@
}, },
{ {
"name": "drupal/editoria11y", "name": "drupal/editoria11y",
"version": "2.2.11", "version": "2.2.13",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://git.drupalcode.org/project/editoria11y.git", "url": "https://git.drupalcode.org/project/editoria11y.git",
"reference": "2.2.11" "reference": "2.2.13"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://ftp.drupal.org/files/projects/editoria11y-2.2.11.zip", "url": "https://ftp.drupal.org/files/projects/editoria11y-2.2.13.zip",
"reference": "2.2.11", "reference": "2.2.13",
"shasum": "be8e424636492f3613f3c39de83a9d0175fb83bc" "shasum": "75c337db893c935d60935bcdf03ae40c186fbba6"
}, },
"require": { "require": {
"drupal/core": "^9 || ^10 || ^11" "drupal/core": "^9 || ^10 || ^11"
@ -8271,8 +8271,8 @@
"type": "drupal-module", "type": "drupal-module",
"extra": { "extra": {
"drupal": { "drupal": {
"version": "2.2.11", "version": "2.2.13",
"datestamp": "1749656980", "datestamp": "1752844518",
"security-coverage": { "security-coverage": {
"status": "covered", "status": "covered",
"message": "Covered by Drupal's security advisory policy" "message": "Covered by Drupal's security advisory policy"
@ -11828,20 +11828,20 @@
}, },
{ {
"name": "drupal/linkit", "name": "drupal/linkit",
"version": "6.1.6", "version": "7.0.7",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://git.drupalcode.org/project/linkit.git", "url": "https://git.drupalcode.org/project/linkit.git",
"reference": "6.1.6" "reference": "7.0.7"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://ftp.drupal.org/files/projects/linkit-6.1.6.zip", "url": "https://ftp.drupal.org/files/projects/linkit-7.0.7.zip",
"reference": "6.1.6", "reference": "7.0.7",
"shasum": "113d8e569cfb92f8d7feb0a2f7713953c0715e92" "shasum": "aa10493dfa34f4f8ce51313d47c66b21b9596f3e"
}, },
"require": { "require": {
"drupal/core": "^10.1" "drupal/core": "^10.1 || ^11"
}, },
"require-dev": { "require-dev": {
"drupal/ckeditor": "*", "drupal/ckeditor": "*",
@ -11850,8 +11850,8 @@
"type": "drupal-module", "type": "drupal-module",
"extra": { "extra": {
"drupal": { "drupal": {
"version": "6.1.6", "version": "7.0.7",
"datestamp": "1729189029", "datestamp": "1752264962",
"security-coverage": { "security-coverage": {
"status": "covered", "status": "covered",
"message": "Covered by Drupal's security advisory policy" "message": "Covered by Drupal's security advisory policy"
@ -16244,11 +16244,11 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://git.drupalcode.org/project/social_post_facebook.git", "url": "https://git.drupalcode.org/project/social_post_facebook.git",
"reference": "eddf359ba9177adb81b63fa6c84e591b35603b51" "reference": "af3fce0c31533b5f074be3830ade383364ffec04"
}, },
"require": { "require": {
"agaric/php-facebook": "dev-main", "agaric/php-facebook": "dev-main",
"drupal/core": "^8 || ^9 || ^10", "drupal/core": "^8 || ^9 || ^10 || ^11",
"drupal/social_post": "^3" "drupal/social_post": "^3"
}, },
"type": "drupal-module", "type": "drupal-module",
@ -16258,7 +16258,7 @@
}, },
"drupal": { "drupal": {
"version": "3.0.x-dev", "version": "3.0.x-dev",
"datestamp": "1745366639", "datestamp": "1752867749",
"security-coverage": { "security-coverage": {
"status": "not-covered", "status": "not-covered",
"message": "Dev releases are not covered by Drupal security advisories." "message": "Dev releases are not covered by Drupal security advisories."
@ -16471,7 +16471,7 @@
"homepage": "https://www.drupal.org/user/516420" "homepage": "https://www.drupal.org/user/516420"
}, },
{ {
"name": "Nitesh Sethia", "name": "nitesh sethia",
"homepage": "https://www.drupal.org/user/2474982" "homepage": "https://www.drupal.org/user/2474982"
}, },
{ {
@ -16483,7 +16483,7 @@
"homepage": "https://www.drupal.org/user/35821" "homepage": "https://www.drupal.org/user/35821"
}, },
{ {
"name": "RobLoach", "name": "robloach",
"homepage": "https://www.drupal.org/user/61114" "homepage": "https://www.drupal.org/user/61114"
}, },
{ {
@ -26247,24 +26247,24 @@
"packages-dev": [ "packages-dev": [
{ {
"name": "behat/behat", "name": "behat/behat",
"version": "v3.22.0", "version": "v3.23.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Behat/Behat.git", "url": "https://github.com/Behat/Behat.git",
"reference": "a93098a77753c3cfdc4c485d75141924a78ceb93" "reference": "c465af8756adaaa6d962c3176a0a6c594361809b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Behat/Behat/zipball/a93098a77753c3cfdc4c485d75141924a78ceb93", "url": "https://api.github.com/repos/Behat/Behat/zipball/c465af8756adaaa6d962c3176a0a6c594361809b",
"reference": "a93098a77753c3cfdc4c485d75141924a78ceb93", "reference": "c465af8756adaaa6d962c3176a0a6c594361809b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"behat/gherkin": "^4.12.0", "behat/gherkin": "^4.12.0",
"composer-runtime-api": "^2.2", "composer-runtime-api": "^2.2",
"composer/xdebug-handler": "^3.0", "composer/xdebug-handler": "^1.4 || ^2.0 || ^3.0",
"ext-mbstring": "*", "ext-mbstring": "*",
"nikic/php-parser": "^5.2", "nikic/php-parser": "^4.19.2 || ^5.2",
"php": "8.1.* || 8.2.* || 8.3.* || 8.4.* ", "php": "8.1.* || 8.2.* || 8.3.* || 8.4.* ",
"psr/container": "^1.0 || ^2.0", "psr/container": "^1.0 || ^2.0",
"symfony/config": "^5.4 || ^6.4 || ^7.0", "symfony/config": "^5.4 || ^6.4 || ^7.0",
@ -26278,6 +26278,7 @@
"friendsofphp/php-cs-fixer": "^3.68", "friendsofphp/php-cs-fixer": "^3.68",
"phpstan/phpstan": "^2.0", "phpstan/phpstan": "^2.0",
"phpunit/phpunit": "^9.6", "phpunit/phpunit": "^9.6",
"rector/rector": "^2.0",
"sebastian/diff": "^4.0", "sebastian/diff": "^4.0",
"symfony/polyfill-php84": "^1.31", "symfony/polyfill-php84": "^1.31",
"symfony/process": "^5.4 || ^6.4 || ^7.0" "symfony/process": "^5.4 || ^6.4 || ^7.0"
@ -26333,9 +26334,9 @@
], ],
"support": { "support": {
"issues": "https://github.com/Behat/Behat/issues", "issues": "https://github.com/Behat/Behat/issues",
"source": "https://github.com/Behat/Behat/tree/v3.22.0" "source": "https://github.com/Behat/Behat/tree/v3.23.0"
}, },
"time": "2025-05-06T15:25:03+00:00" "time": "2025-07-15T16:58:54+00:00"
}, },
{ {
"name": "behat/gherkin", "name": "behat/gherkin",
@ -26827,16 +26828,16 @@
}, },
{ {
"name": "phpstan/phpstan", "name": "phpstan/phpstan",
"version": "2.1.17", "version": "2.1.18",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpstan/phpstan.git", "url": "https://github.com/phpstan/phpstan.git",
"reference": "89b5ef665716fa2a52ecd2633f21007a6a349053" "reference": "ee1f390b7a70cdf74a2b737e554f68afea885db7"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/89b5ef665716fa2a52ecd2633f21007a6a349053", "url": "https://api.github.com/repos/phpstan/phpstan/zipball/ee1f390b7a70cdf74a2b737e554f68afea885db7",
"reference": "89b5ef665716fa2a52ecd2633f21007a6a349053", "reference": "ee1f390b7a70cdf74a2b737e554f68afea885db7",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -26881,7 +26882,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2025-05-21T20:55:28+00:00" "time": "2025-07-17T17:22:31+00:00"
}, },
{ {
"name": "phpstan/phpstan-deprecation-rules", "name": "phpstan/phpstan-deprecation-rules",

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 B

View file

@ -22,42 +22,6 @@
} }
} }
.site-title {
display: inline-block;
width: 4.6em;
word-break: keep-all; // Shouldn't be needed but Chrome needs it.
font-size: 37px;
line-height: 38px;
}
.geo-logo-name {
display: flex !important;
overflow: hidden;
width: 100%;
.logo, .sitename {
display: table-cell;
}
.logo a {
display: block;
// width: 199px;
}
.logo img {
height: 7.5rem;
}
@include from($tablet) {
width: fit-content;
}
@include until($mini) {
justify-content: flex-end;
}
}
@include until($desktop) {
.search-bar {
display: none !important;
}
}
// Mostly to reduce the impact of the ridiculous (mostly on Chrome) ghost mobile horizontal scroll. // Mostly to reduce the impact of the ridiculous (mostly on Chrome) ghost mobile horizontal scroll.
.search-icon { .search-icon {
padding-right: 1rem; padding-right: 1rem;

View file

@ -11,14 +11,37 @@
// Add a gradient across only a portion of the vertical height of the navbar. // Add a gradient across only a portion of the vertical height of the navbar.
.header { .header {
background: linear-gradient( background-image: url(../../images/green-stripe.png);
$background, }
$background 5.3765rem,
$light-green 5.3765rem, .site-title {
$green 8.4rem, display: inline-block;
$background 8.4rem, width: 4.6em;
$background word-break: keep-all; // Shouldn't be needed but Chrome needs it.
); font-size: 2.3125rem;
line-height: 2.375rem;
}
.geo-logo-name {
display: flex !important;
overflow: hidden;
width: 100%;
.logo, .sitename {
display: table-cell;
}
.logo a {
display: block;
width: 12.4375rem; // 199px
}
.logo img {
height: 7.5rem;
}
// @include from($tablet) {
// width: fit-content;
// }
// @include until($mini) {
// justify-content: flex-end;
// }
} }
#navbar-menu .navbar-item { #navbar-menu .navbar-item {

View file

@ -43,11 +43,11 @@
// Prevent a slight horizontal scroll. // Prevent a slight horizontal scroll.
/* On content listing pages (e.g. card view mode). */ // On content listing pages (e.g. card view mode).
.background-replacement-for-no-image { .background-replacement-for-no-image {
height: 10rem; height: 10rem;
} }
/* On full content pages. */ // On full content pages.
.featured-image .background-replacement-for-no-image { .featured-image .background-replacement-for-no-image {
height: 12rem; height: 12rem;
@include mixins.from($desktop) { @include mixins.from($desktop) {
@ -58,66 +58,66 @@
} }
} }
/* Yes i know i should just give author bios their own class */ // Yes i know i should just give author bios their own class
.node--type-people.node--view-mode-teaser { .node--type-people.node--view-mode-teaser {
margin-bottom: 1rem; margin-bottom: 1rem;
} }
// Main navigation, goes to code in page.html.twig // Main navigation, goes to code in page.html.twig
@include mixins.mobile { @include mixins.touch {
// Code adapted from https://unused-css.com/blog/css-only-hamburger-menu/ // Code adapted from https://unused-css.com/blog/css-only-hamburger-menu/
.hamburger-container { .hamburger-container {
transition: transform 0.5s ease; transition: transform 0.5s ease;
} }
// We don't need the checkbox to be visible, but we can't set it to display: none because this will break keyboard navigation. Instead set the opacity to 0 and the position to absolute so it doesn't push the rest of the content down. // We don't need the checkbox to be visible, but we can't set it to display: none because this will break keyboard navigation. Instead set the opacity to 0 and the position to absolute so it doesn't push the rest of the content down.
.hamburger-container .checkbox { .hamburger-container .checkbox {
opacity: 0; opacity: 0;
position: absolute; position: absolute;
} }
// Show an outline when the hamburger is selected using the keyboard. Older browsers don't support :focus-visible, so we will just use :focus here. // Show an outline when the hamburger is selected using the keyboard. Older browsers don't support :focus-visible, so we will just use :focus here.
.hamburger-container .checkbox:focus ~ .hamburger { .hamburger-container .checkbox:focus ~ .hamburger {
outline: 2px solid yellow; // Default for browsers that do not support outline: auto outline: 2px solid yellow; // Default for browsers that do not support outline: auto
outline: auto; outline: auto;
outline-offset: 4px; outline-offset: 4px;
} }
// For newer browsers that do support :focus-visible, hide the outline when the checkbox isn't selected with the keyboard. // For newer browsers that do support :focus-visible, hide the outline when the checkbox isn't selected with the keyboard.
@supports selector(:focus-visible) { @supports selector(:focus-visible) {
.hamburger-container .checkbox:not(:focus-visible) ~ .hamburger { .hamburger-container .checkbox:not(:focus-visible) ~ .hamburger {
outline: none; outline: none;
} }
} }
/* Hide any focusable elements in the drawer by default to aid keyboard navigation. We use visibility so it makes the elements unfocusable, but doesn't affect the layout. We can also add a "transition" to visibility, which will make it show instantly when we open the drawer, but take half a second to hide it when we close the drawer. */ // Hide any focusable elements in the drawer by default to aid keyboard navigation. We use visibility so it makes the elements unfocusable, but doesn't affect the layout. We can also add a "transition" to visibility, which will make it show instantly when we open the drawer, but take half a second to hide it when we close the drawer.
.hamburger-container .drawer a { .hamburger-container .drawer {
visibility: hidden; visibility: hidden;
transition: visibility 0.5s linear; transition: visibility 0.5s linear;
} }
/* Make the focusable elements in the drawer visible when it is open. */ // Make the focusable elements in the drawer visible when it is open.
.hamburger-container .checkbox:checked ~ .drawer a { .hamburger-container .checkbox:checked ~ .drawer {
visibility: visible; visibility: visible;
} }
.hamburger-container .checkbox:checked ~ .drawer { .hamburger-container .checkbox:checked ~ .drawer {
transform: translateX(0%); transform: translateX(0%);
} }
.hamburger-container .checkbox:checked ~ .hamburger .slice:nth-child(1) { .hamburger-container .checkbox:checked ~ .hamburger .slice:nth-child(1) {
transform: translateY(12px) rotate(45deg); transform: translateY(0.6875rem) rotate(45deg);
} }
.hamburger-container .checkbox:checked ~ .hamburger .slice:nth-child(2) { .hamburger-container .checkbox:checked ~ .hamburger .slice:nth-child(2) {
opacity: 0; opacity: 0;
} }
.hamburger-container .checkbox:checked ~ .hamburger .slice:nth-child(3) { .hamburger-container .checkbox:checked ~ .hamburger .slice:nth-child(3) {
transform: translateY(-12px) rotate(-45deg); transform: translateY(-0.6875rem) rotate(-45deg);
} }
.hamburger { .hamburger {
cursor: pointer; cursor: pointer;
display: block; display: block;
position: relative; position: relative;
@ -128,21 +128,21 @@
height: 5rem; height: 5rem;
transition: transform 0.3s ease; transition: transform 0.3s ease;
z-index: 1; z-index: 1;
} }
.hamburger .slice { .hamburger .slice {
display: block; display: block;
width: 100%; width: 100%;
height: 0.1875rem; height: 0.1875rem;
background-color: $green; background-color: $green;
transition: all 0.3s ease; transition: all 0.3s ease;
} }
.hamburger .slice:not(:first-child) { .hamburger .slice:not(:first-child) {
margin-top: 0.5rem; margin-top: 0.5rem;
} }
.drawer { .drawer {
position: absolute; position: absolute;
right: 0; right: 0;
top: 5rem; top: 5rem;
@ -154,28 +154,28 @@
transform: translateX(-100%); transform: translateX(-100%);
transition: transform 0.4s ease; transition: transform 0.4s ease;
z-index: 100; z-index: 100;
} }
.drawer .nav-list { .drawer .nav-list {
padding: 0; padding: 0;
list-style: none; list-style: none;
// margin-top: 30px; // margin-top: 30px;
// margin-left: 20px; // margin-left: 20px;
} }
.drawer .nav-list .nav-list-item { .drawer .nav-list .nav-list-item {
// padding-bottom: 10px; // padding-bottom: 10px;
} }
} }
@include mixins.tablet { @include mixins.desktop {
.hamburger, #hamburger-toggle { .hamburger, #hamburger-toggle {
display: none; display: none;
} }
} }
/* Make the drawer full-width on mobile */ // Make the drawer full-width on mobile
@media screen and (max-width: local.$mini) { @include mixins.mobile {
.drawer { .drawer {
width: 100%; width: 100%;
} }