diff --git a/designsafe/apps/workspace/templates/designsafe/apps/workspace/app_card.html b/designsafe/apps/workspace/templates/designsafe/apps/workspace/app_card.html index 1e1e6f3bde..e31df8ea1f 100644 --- a/designsafe/apps/workspace/templates/designsafe/apps/workspace/app_card.html +++ b/designsafe/apps/workspace/templates/designsafe/apps/workspace/app_card.html @@ -1,5 +1,5 @@ - -

{{app.label}}

+
+

{{app.label}}

{{app.description}}

diff --git a/designsafe/apps/workspace/templates/designsafe/apps/workspace/app_listing_plugin.html b/designsafe/apps/workspace/templates/designsafe/apps/workspace/app_listing_plugin.html index 6d0a96afb7..69ffb3ce88 100644 --- a/designsafe/apps/workspace/templates/designsafe/apps/workspace/app_listing_plugin.html +++ b/designsafe/apps/workspace/templates/designsafe/apps/workspace/app_listing_plugin.html @@ -1,5 +1,5 @@

{{instance.app_category}}

-
+
{% for app in listing %} {% include "designsafe/apps/workspace/app_card.html" with app=app %} {% endfor %} diff --git a/designsafe/apps/workspace/templates/designsafe/apps/workspace/app_variant_plugin.html b/designsafe/apps/workspace/templates/designsafe/apps/workspace/app_variant_plugin.html index ac7a2bf29d..f9786ba005 100644 --- a/designsafe/apps/workspace/templates/designsafe/apps/workspace/app_variant_plugin.html +++ b/designsafe/apps/workspace/templates/designsafe/apps/workspace/app_variant_plugin.html @@ -1,15 +1,10 @@ -
-

Select a Version

+
+

Select a Version

{% for variant in listing %}
{% endfor %}
diff --git a/designsafe/apps/workspace/templates/designsafe/apps/workspace/related_apps_plugin.html b/designsafe/apps/workspace/templates/designsafe/apps/workspace/related_apps_plugin.html index 8776b428b8..8e1c778649 100644 --- a/designsafe/apps/workspace/templates/designsafe/apps/workspace/related_apps_plugin.html +++ b/designsafe/apps/workspace/templates/designsafe/apps/workspace/related_apps_plugin.html @@ -1,5 +1,5 @@

Related Applications

-
+
{% for app in listing %} {% include "designsafe/apps/workspace/app_card.html" with app=app %} {% endfor %} diff --git a/designsafe/static/styles/app-card.css b/designsafe/static/styles/app-card.css index b95a9cf0cb..9c2e91cabf 100644 --- a/designsafe/static/styles/app-card.css +++ b/designsafe/static/styles/app-card.css @@ -5,16 +5,9 @@ -/* Card */ -/* To stretch card to fill column height */ -[class^="col-"] .c-app-card { - height: 100%; - min-height: 230px; -} - /* Title */ .c-app-card__title { - margin-top: 0.5em; + margin-top: 1em; margin-bottom: 0; } .c-app-card__title > .icon::before { @@ -23,7 +16,7 @@ /* Description */ .c-app-card__desc { - padding-inline: 1rem; + padding-inline: 1.5rem; margin-block: 1.5rem; } @@ -89,3 +82,7 @@ a.c-app-card:active { .c-app-card__flags > *:has(strong) { background-color: #ECE4BF; } + +.c-app-card__repo { + font-style: italic; +} diff --git a/designsafe/static/styles/app-grid.css b/designsafe/static/styles/app-grid.css new file mode 100644 index 0000000000..fcf4eeb76f --- /dev/null +++ b/designsafe/static/styles/app-grid.css @@ -0,0 +1,12 @@ +.o-app-grid { + display: grid; + gap: 30px; /* mimics Bootstrap's gap */ + grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); + justify-content: flex-start; + + margin-bottom: 40px; +} +.o-app-grid > * { + min-height: 230px; + max-width: 350px; +} diff --git a/designsafe/static/styles/app-page.css b/designsafe/static/styles/app-page.css index ff83869aed..039c62188d 100644 --- a/designsafe/static/styles/app-page.css +++ b/designsafe/static/styles/app-page.css @@ -1,4 +1,5 @@ @import url("./app-card.css"); +@import url("./app-grid.css"); @import url("./app-version-list.css"); /* To make width of page content line up with width of header. */ @@ -11,22 +12,35 @@ color: var(--ds-accent-color, #47a59d); } .s-app-page h2 { - font-size: 2.0rem; + font-size: 2.5rem; + font-weight: 500; /* e.g. "medium" */ text-transform: none; margin-bottom: 30px; } -.s-app-page h2:not(.s-version-list *) { +.s-app-page h2:not(.s-app-version-list *) { color: var(--ds-accent-color, #47a59d); margin-top: 40px; padding-bottom: 16px; border-bottom: 2px solid var(--ds-accent-color, #47a59d); } -.s-app-page h3:not(.s-version-list *):not(.c-app-card__title) { +.s-app-page h3:not(.s-app-version-list *):not(.c-app-card__title) { + font-size: 1.8rem; margin-top: 40px; /* double Bootstrap h3 margin-top */ } -p:where(.s-app-page *) { +.s-app-page p { line-height: 1.8; } + +/* Add more space between Bootstrap columns */ +/* HACK: Overwrite Bootstrap grid */ +.s-app-page [class*="col-"] { + padding-left: 30px; + padding-right: 30px; +} +.s-app-page .row { + margin-left: -30px; + margin-right: -30px; +} diff --git a/designsafe/static/styles/app-version-list.css b/designsafe/static/styles/app-version-list.css index ff60910bfa..93f4b82220 100644 --- a/designsafe/static/styles/app-version-list.css +++ b/designsafe/static/styles/app-version-list.css @@ -1,27 +1,38 @@ -.s-version-list { +/* FAQ: Relies on markup, so CMS can replicate the design */ + +/* Container */ +.s-app-version-list { background-color: #F4F4F4; padding: 20px; } -.s-version-list > h2 { + +/* List Title */ +.s-app-version-list > h2 { color: inherit; margin-top: unset; padding-bottom: unset; border-bottom: unset; } -.s-version-list > article { - padding-top: 30px; + +/* Version Content Layout */ +.s-app-version-list > article { display: grid; grid-template-areas: "name link" "desc desc"; } -.s-version-list > article:not(:last-of-type) { + +/* Space & Lines Between Versions */ +.s-app-version-list > article:not(:last-of-type) { padding-bottom: 15px; } -.s-version-list > *:not(:first-of-type) { +.s-app-version-list > article:not(:first-of-type) { + padding-top: 30px; border-top: 1px solid #333333; } -.s-version-list > * > h3 { + +/* Version Label */ +.s-app-version-list > article > h3 { grid-area: name; font-size: 1.6rem; font-weight: 500; /* e.g. "medium", Core-Styles `var(--medium)` */ @@ -31,22 +42,26 @@ display: grid; align-content: center; } + +/* Version Link */ +.s-app-version-list > article > a, +/* To support manual content via CMS */ /* FAQ: CMS forces a button or link on its own line to be in a paragraph */ -.s-version-list > * > p:has( - a:only-child, - button:only-child -) { +.s-app-version-list > * > p:has(a:only-child) { grid-area: link; justify-self: end; } -.s-version-list > * > p:not(:has( - a:only-child, - button:only-child -)) { +.s-app-version-list > article > a { + margin-bottom: 10px; /* mimics Bootstrap `p { margin: 0 0 10px; }` */ +} +.s-app-version-list > * > p:only-of-type, +/* To support manual content via CMS */ +/* FAQ: CMS forces a button or link on its own line to be in a paragraph */ +.s-app-version-list > * > p:not(:has(a:only-child)) { grid-area: desc; } /* Bootstrap */ -.s-version-list .btn { +.s-app-version-list .btn { padding-inline: 24px; /* double Bootstrap .btn padding */ } diff --git a/designsafe/templates/base.j2 b/designsafe/templates/base.j2 index 7d64b1f8eb..664eaf05f5 100644 --- a/designsafe/templates/base.j2 +++ b/designsafe/templates/base.j2 @@ -35,7 +35,6 @@ - {% block styles %}{% endblock %} {% render_block "css" %} diff --git a/designsafe/templates/cms_page_for_app.html b/designsafe/templates/cms_page_for_app.html index 73c5b42b00..5dead1dcf0 100644 --- a/designsafe/templates/cms_page_for_app.html +++ b/designsafe/templates/cms_page_for_app.html @@ -1,6 +1,9 @@ {% extends "cms_page.html" %} {% load cms_tags static sekizai_tags %} {% block page_class %}s-app-page{% endblock page_class %} -{% addtoblock "css" %} - -{% endaddtoblock %} + +{% block styles %} + {% addtoblock "css" %} + + {% endaddtoblock %} +{% endblock %}