diff --git a/strictdoc/export/html/_static/_content.css b/strictdoc/export/html/_static/_content.css index e6d982fce..6cd9a97c3 100644 --- a/strictdoc/export/html/_static/_content.css +++ b/strictdoc/export/html/_static/_content.css @@ -1,57 +1,44 @@ -.content { - display: grid; - grid-template-columns: 1fr 1fr 1fr; - gap: 0 0; - place-items: stretch stretch; - /* - for vertical line in 'current' column: - .content_item[data-role="current"]::before - */ - overflow: hidden; -} - [data-viewtype="document"] .content { display: block; - background-color: var(--color-bg-contrast); max-width: 900px; - padding: calc(var(--base-padding)*2); } [data-viewtype="traceability"] .content { + display: grid; + place-items: stretch stretch; grid-template-columns: minmax(min-content, max-content) minmax(var(--card-width), calc(2*var(--card-width))) minmax(min-content, max-content); gap: var(--traceability-arrow) 0; width: -moz-fit-content; width: fit-content; + overflow: hidden; } [data-viewtype="requirements-coverage"] .content, [data-viewtype="deep_traceability"] .content { + display: grid; + place-items: stretch stretch; grid-template-columns: minmax(min-content, max-content) max-content minmax(min-content, max-content); gap: var(--traceability-arrow) 0; width: -moz-fit-content; width: fit-content; + overflow: hidden; } [data-viewtype="table"] .content { - /* grid-template-columns: minmax(250px, 25%) - minmax(300px, 45%) - minmax(250px, 30%); - gap: 2px; - background-color: #ddd; - border: 2px solid #ddd; */ background-color: var(--color-bg-contrast); display: block; - overflow: visible; } +/* TODO */ +/* used in TR, DTR, requirements_coverage: */ .content_section { display: contents; } - +/* TODO */ .content_item { position: relative; display: flex; @@ -96,37 +83,6 @@ border-left: 1px dotted #000; } -/* [data-viewtype="table"] */ - -[data-viewtype="table"] article { - display: contents; -} - -[data-viewtype="table"] [data-section="meta"] { - grid-column: 1 / 2; -} - -[data-viewtype="table"] [data-section="meta"].docsection_section:only-child { - grid-column: 1 / -1; - /* background-color: var(--color-bg-main); */ -} - -[data-viewtype="table"] [data-section="description"] { - grid-column: 2 / -1; -} - -[data-viewtype="table"] [data-section="statement"] { - grid-column: 2 / 3; -} - -[data-viewtype="table"] [data-section="comment"] { - grid-column: 3 / 4; -} - -[data-viewtype="table"] [data-col="0"] { - grid-column: 1 / -1; -} - /* meta info */ .content_meta { @@ -250,11 +206,11 @@ } .content-view-td-related, -.content-view-td-related > ul.requirement_link { +.content-view-td-related > ul.requirement__link { font-size: .85rem; margin-top: 0; } -.content-view-td-related > ul.requirement_link:last-child { +.content-view-td-related > ul.requirement__link:last-child { margin-bottom: 0; } diff --git a/strictdoc/export/html/_static/_element.css b/strictdoc/export/html/_static/_element.css index ce093e205..7d679e395 100644 --- a/strictdoc/export/html/_static/_element.css +++ b/strictdoc/export/html/_static/_element.css @@ -1,6 +1,6 @@ -[data-viewtype="source-file"] .requirement_link:hover { +[data-viewtype="source-file"] .requirement__link:hover { text-decoration: none; } @@ -34,9 +34,10 @@ a[aria-disabled="true"] { pointer-events: none; } -main a, -main a:link, -main a:visited { +/* .document from tool */ +.document a, +.document a:link, +.document a:visited { text-decoration: underline; } @@ -80,8 +81,10 @@ main a:visited { column-gap: var(--base-rhythm); } +.action_button, a.action_button, -.action_button { +a.action_button:link, +a.action_button:visited { font-size:var(--font-size-xsm); font-weight: 600; text-align: left; @@ -89,6 +92,7 @@ a.action_button, white-space: nowrap; position: relative; display: inline-flex; + align-items: center; justify-content: center; -webkit-box-align: center; @@ -99,19 +103,24 @@ a.action_button, user-select: none; cursor: pointer; appearance: none; - padding: calc(var(--base-rhythm)*0.5) calc(var(--base-rhythm)*1.5); - min-height: 32px; - box-shadow: rgb(0 0 0 / 10%) 0px 1px 2px 0px; + /* 1.5 column-gap is compensated by SVG negative margin */ + column-gap: calc(var(--base-rhythm)*1.5); + padding-left: calc(var(--base-rhythm)*1.5); + padding-right: calc(var(--base-rhythm)*1.5); + min-height: calc(var(--base-rhythm)*4); + + /* box-shadow: rgb(0 0 0 / 10%) 0px 1px 2px 0px; */ color: var(--color-action); background-color: rgb(255, 255, 255); - border-color: rgba(0, 0, 0, 0.1); + border-color: rgba(0, 0, 0, 0.05); background-clip: padding-box; transition: 0.2s; } -.action_button:hover { +.action_button:hover, +a.action_button:hover { box-shadow: rgb(0 0 0 / 10%) 0px 2px var(--base-rhythm) 0px; color: var(--color-hover); } @@ -125,6 +134,15 @@ a.action_button, cursor: default; } +.action_button svg { + /* + action_button 1.5 column-gap + is compensated by SVG negative margin + */ + margin-left: calc(var(--base-rhythm)*(-.5)); + margin-right: calc(var(--base-rhythm)*(-.5)); +} + /* nav */ .nav { diff --git a/strictdoc/export/html/_static/_requirement.css b/strictdoc/export/html/_static/_requirement.css index ad7efe56f..c48302bb9 100644 --- a/strictdoc/export/html/_static/_requirement.css +++ b/strictdoc/export/html/_static/_requirement.css @@ -1,107 +1,76 @@ +turbo-frame { + display: contents; +} + +sdoc-node { + display: block; + position: relative; + + background-color: var(--color-bg-contrast); + padding: calc(var(--base-padding)) calc(var(--base-padding)*2); + + /* margin-bottom: 4px; */ +} + +/* * */ + [data-role="anchor"] { /* for Fixed Headers + Section Anchors */ scroll-snap-margin-top: calc(var(--base-gap) + var(--base-padding)); scroll-margin-top: calc(var(--base-gap) + var(--base-padding)); } -[data-role="anchor"]:target + .section-title { +[data-role="anchor"]:target + .requirement__title { background-color: var(--color-highlight); } -/* article */ +/* sdoc-node */ -article { - position: relative; -} - -[data-role='current'] article { +[data-role='current'] sdoc-node { background-color: var(--color-bg-contrast); border: 1px solid var(--color-fg-contrast); /* height: 100%; */ /* flex-grow: 1; */ } -[data-role='parents'] article, -[data-role='children'] article { +[data-role='parents'] sdoc-node, +[data-role='children'] sdoc-node { background-color: var(--color-bg-secondary); border: 1px solid var(--color-border); width: var(--card-width); } -article.requirement.nouid { +sdoc-node.nouid { background-color: rgb(240, 220, 220); } -article.requirement.nouid .section-title { +sdoc-node.nouid .requirement__title { color: #502222; } -article.requirement.highlighted { +sdoc-node.highlighted { background-color: var(--color-highlight); } -[data-viewtype="traceability"] article + article { +[data-viewtype="traceability"] sdoc-node + sdoc-node { margin-top: var(--base-padding); } -[data-viewtype="deep_traceability"] article { +[data-viewtype="deep_traceability"] sdoc-node { /* width: var(--card-width); */ /* flex-grow: 1; */ } -[data-viewtype="requirements-coverage"] article { +[data-viewtype="requirements-coverage"] sdoc-node { width: calc(var(--card-width)*0.75); /* width: auto; */ font-size: .85em; line-height: 1.4; } -/* section */ - -article > section { - padding-left: var(--base-padding); - padding-right: var(--base-padding); -} - -article > section:first-of-type { - padding-top: var(--base-padding); -} - -article > section:last-of-type { - padding-bottom: var(--base-padding); -} - -[data-viewtype="document"] article > section { - padding-left: 0; - padding-right: 0; -} +/* requirement__statement */ -/* [data-viewtype="table"] */ - -[data-viewtype="table"] section, -[data-viewtype="table"] [data-section] { - background-color: var(--color-bg-contrast); - padding: var(--base-padding); -} - -[data-viewtype="table"] [data-section] p:first-child { margin-top: 0; } -[data-viewtype="table"] [data-section] p:last-child { margin-bottom: 0; } - -[data-viewtype="table"] [data-section="meta"] > .requirement_meta { - border-width: 1px; - border-color: #ddd; - background-color: #ddd; - padding: 0; - width: 100%; -} - -[data-viewtype="table"] [data-section="meta"] > .requirement_meta dt i { - max-width: 100px; -} - -/* requirement_statement */ - -[data-viewtype="document"] .requirement_statement { +[data-viewtype="document"] .requirement__statement { /* margin: calc(var(--base-margin)*2) 0px; */ font-size: calc(var(--base-font-size)*1.2); } @@ -112,11 +81,7 @@ div.document { display: contents; } -section:target [data-role="current"] .section-title { - background-color: var(--color-highlight); -} - -section p { +div.document p { margin: var(--base-margin) 0; } @@ -127,31 +92,31 @@ h4 { font-size: 1.2em; } h5 { font-size: 1em; } h6 { font-size: 1em; } -/* section-title */ +/* requirement__title */ -.section-title { +.requirement__title { margin: 0; line-height: 1.6; - /* color: var(--color-accent); */ + font-weight: bold; } -/* .section-title[data-level]::before { +/* .requirement__title[data-level]::before { content: attr(data-level) " "; font-weight: bold; } */ -[data-viewtype="traceability"] .section-title, -[data-viewtype="deep_traceability"] .section-title { +[data-viewtype="traceability"] .requirement__title, +[data-viewtype="deep_traceability"] .requirement__title { font-size: 1.1em; } -[data-viewtype="requirements-coverage"] .section-title { +[data-viewtype="requirements-coverage"] .requirement__title { margin: 0; } -[data-viewtype="table"] .section-title { +/* [data-viewtype="table"] .requirement__title { font-size: 1rem; -} +} */ /* blockquote */ @@ -209,15 +174,15 @@ a.reference.external { /* ul */ -article ul, -article ol { +div.document ul, +div.document ol { padding-left: 1.6em; } /* object */ -article img, -article object { +div.document img, +div.document object { width: 100%; padding: 1em; background: var(--color-bg-contrast); @@ -225,7 +190,7 @@ article object { /* meta table */ -dl.requirement_meta { +dl.requirement__meta { display: grid; grid-template-columns: min-content auto; place-items: stretch stretch; @@ -238,12 +203,12 @@ dl.requirement_meta { margin-bottom: 1rem; } -.section-title + dl.requirement_meta { +.requirement__title + dl.requirement__meta { margin-top: 1rem; } -.requirement_meta dt, -.requirement_meta dd { +.requirement__meta dt, +.requirement__meta dd { margin: 0; padding: 2px 8px; font-size: .85rem; @@ -253,51 +218,51 @@ dl.requirement_meta { /* background-color: var(--color-bg-main); */ } -.requirement_meta dt i { +.requirement__meta dt i { display: inline-block; /* letter-spacing: -1px; */ overflow-wrap: break-word; } -.requirement_meta dt i::after { +.requirement__meta dt i::after { content: ':'; } -.requirement-tree_node .requirement_meta dt, -.requirement-tree_node .requirement_meta dd { +.requirement-tree_node .requirement__meta dt, +.requirement-tree_node .requirement__meta dd { background-color: var(--color-bg-main); } /* meta multiline list (next to comments/rationale) */ -.requirement_meta_multiline { +.requirement__meta_multiline { font-size: .9em; font-style: italic; } -.requirement_meta_multiline + .requirement_meta_multiline { +.requirement__meta_multiline + .requirement__meta_multiline { margin-top: var(--base-margin); } -.requirement_meta_multiline_label { +.requirement__meta_multiline_label { font-weight: bold; } /* requirement: parent / child / file */ -ul.requirement_link { +ul.requirement__link { font-size: .85em; line-height: 1.4; list-style: none; padding: 0; } -[data-viewtype="source-file"] ul.requirement_link li { +[data-viewtype="source-file"] ul.requirement__link li { margin-top: 0.5rem; } -.requirement_link a, -.requirement_link li > span { +.requirement__link a, +.requirement__link li > span { display: inline-block; position: relative; margin-left: 1.5rem; @@ -305,78 +270,78 @@ ul.requirement_link { overflow-wrap: break-word; } -.requirement_link a::before, -.requirement_link li > span::before { +.requirement__link a::before, +.requirement__link li > span::before { color: #808080; position: absolute; left: -1.5rem; } -.requirement_link a:link, -.requirement_link a:visited { +.requirement__link a:link, +.requirement__link a:visited { color: var(--color-accent-dark); text-decoration: underline; } -.requirement_link a:hover { +.requirement__link a:hover { text-decoration: none; } -/* .requirement_link a::before { +/* .requirement__link a::before { content: '\2014'; } */ -a.requirement_link-file::before, -.requirement_link-file::before { +a.requirement__link-file::before, +.requirement__link-file::before { content: ''; } -a.requirement_link-parent::before { +a.requirement__link-parent::before { content: '\2190'; } -a.requirement_link-child::before { +a.requirement__link-child::before { content: '\2192'; } -.requirement_link-external::before { +.requirement__link-external::before { content: '\21D6'; } -.requirement_parent-uid, -.requirement_child-uid { +.requirement__parent-uid, +.requirement__child-uid { position: relative; font-weight: bold; } /* rationale */ -.requirement_rationale { +.requirement__rationale { font-size: .9em; font-style: italic; } -.requirement_rationale + .requirement_rationale { +.requirement__rationale + .requirement__rationale { margin-top: var(--base-margin); } -.requirement_rationale p:first-child::before { +.requirement__rationale p:first-child::before { content: "Rationale: "; font-weight: bold; } /* comment */ -.requirement_comment { +.requirement__comment { font-size: .9em; font-style: italic; } -.requirement_comment + .requirement_comment { +.requirement__comment + .requirement__comment { margin-top: var(--base-margin); } -.requirement_comment p:first-child::before { +.requirement__comment p:first-child::before { content: "Comment: "; font-weight: bold; } @@ -391,29 +356,24 @@ a.requirement_link-child::before { /* table */ -div.document table, -article table { +div.document table { border-collapse: collapse; margin: var(--base-margin) 0; font-size: 1rem; border: #ccc; } -div.document table caption, -article table caption { +div.document table caption { font-weight: bold; padding-bottom: 1rem; } -div.document table th, -article table th { +div.document table th { background-color: #eee; } div.document table th, -div.document table td, -article table th, -article table td { +div.document table td { padding: calc(var(--base-margin)/2); vertical-align: top; text-align: left; @@ -509,7 +469,7 @@ input:checked + .std-switch_slider:before { padding: 0; } -.requirement-table caption .section-title { +.requirement-table caption .requirement__title { padding: .5rem 1rem; } @@ -533,15 +493,15 @@ input:checked + .std-switch_slider:before { border: 1px solid #666; } -.requirement-table ul.requirement_link:first-child, +.requirement-table ul.requirement__link:first-child, .requirement-table p:first-child { margin-top: 0; } -.requirement-table ul.requirement_link:last-child, +.requirement-table ul.requirement__link:last-child, .requirement-table p:last-child { margin-bottom: 0; } -.requirement-table ul.requirement_link { +.requirement-table ul.requirement__link { font-size: 1em; } diff --git a/strictdoc/export/html/_static/_source.css b/strictdoc/export/html/_static/_source.css index f47d694fd..03872b440 100644 --- a/strictdoc/export/html/_static/_source.css +++ b/strictdoc/export/html/_static/_source.css @@ -7,9 +7,9 @@ --source-line: 1px solid rgba(0, 0, 0, .05); } -/* article in SOURCE */ +/* SDOC-NODE in SOURCE */ -[data-viewtype="source-file"] article.requirement { +.source-file__requirement { position: static; padding: var(--base-padding); background-color: var(--color-bg-secondary); @@ -18,8 +18,8 @@ transition: background-color 0.3s ease-in, border-color 0.3s ease-in; font-size: var(--font-size-xsm); } -/* [data-viewtype="source-file"] article.requirement:target, */ -[data-viewtype="source-file"] article.requirement.active { + +.source-file__requirement.active { background-color: var(--color-bg-contrast); border: 1px solid var(--color-fg-contrast); } diff --git a/strictdoc/export/html/_static/_tree.css b/strictdoc/export/html/_static/_tree.css index a6a2a124f..7640f7b55 100644 --- a/strictdoc/export/html/_static/_tree.css +++ b/strictdoc/export/html/_static/_tree.css @@ -82,7 +82,6 @@ fill: var(--tree-color-line); } - /* section */ .std-tree_row { padding-top: var(--tree-cell-padding); padding-bottom: var(--tree-cell-padding); diff --git a/strictdoc/export/html/_static/requirements-coverage.js b/strictdoc/export/html/_static/requirements-coverage.js index f33318d6f..fc14a91f6 100644 --- a/strictdoc/export/html/_static/requirements-coverage.js +++ b/strictdoc/export/html/_static/requirements-coverage.js @@ -1,4 +1,4 @@ - +const SELECTOR = '[js-requirements-coverage]'; const __log = (topic, ...payload) => { console.log(`%c ${topic} `, 'background:yellow;color:black', @@ -25,9 +25,7 @@ window.addEventListener("load", function () { } // https://stackoverflow.com/questions/32249997/how-to-check-if-data-attribute-exist-with-plain-javascript/32250073 - - // const reqs = [...document.querySelectorAll('[data-uid]')] - const reqs = [...document.querySelectorAll('.requirement')] + const reqs = [...document.querySelectorAll(SELECTOR)] .reduce((acc, req) => { if (req.hasAttribute('data-uid')) { req.addEventListener('click', () => markSame(uid, state, reqs)); diff --git a/strictdoc/export/html/templates/_res/svg_ico16_edit.jinja.html b/strictdoc/export/html/templates/_res/svg_ico16_edit.jinja.html new file mode 100644 index 000000000..3f74c649a --- /dev/null +++ b/strictdoc/export/html/templates/_res/svg_ico16_edit.jinja.html @@ -0,0 +1,4 @@ + + + + diff --git a/strictdoc/export/html/templates/_res/svg_ico16_gear.jinja.html b/strictdoc/export/html/templates/_res/svg_ico16_gear.jinja.html new file mode 100644 index 000000000..8ad24603f --- /dev/null +++ b/strictdoc/export/html/templates/_res/svg_ico16_gear.jinja.html @@ -0,0 +1,3 @@ + + + diff --git a/strictdoc/export/html/templates/_shared/document_freetext.jinja.html b/strictdoc/export/html/templates/_shared/document_freetext.jinja.html index 595c1ad50..0f262b998 100644 --- a/strictdoc/export/html/templates/_shared/document_freetext.jinja.html +++ b/strictdoc/export/html/templates/_shared/document_freetext.jinja.html @@ -1,13 +1,11 @@ -
+ {%- if document.free_texts -%} -
{%- for free_text in document.free_texts %}
{{ renderer.render_free_text(document_type, free_text) }}
{%- endfor -%} -
{%- endif -%} {%- if config.is_running_on_server -%} @@ -18,5 +16,5 @@ +R⬊ {%- endif -%} {%- endif -%} -
+
diff --git a/strictdoc/export/html/templates/_shared/requirement.jinja.html b/strictdoc/export/html/templates/_shared/requirement.jinja.html index 5b2a18acd..7e7d91a54 100644 --- a/strictdoc/export/html/templates/_shared/requirement.jinja.html +++ b/strictdoc/export/html/templates/_shared/requirement.jinja.html @@ -2,13 +2,11 @@ {%- set anchor=link_renderer.render_local_anchor(requirement) -%} -
-
- {% include "_shared/requirement_block/anchor.jinja.html" %} {%- if requirement.reserved_title %} @@ -21,20 +19,13 @@ {% include "_shared/requirement_block/related.jinja.html" %} {% include "_shared/requirement_block/files_list.jinja.html" %} -
-
- {% include "_shared/requirement_block/statement.jinja.html" %} -
-
{% include "_shared/requirement_block/rationale.jinja.html" %} {% include "_shared/requirement_block/comment.jinja.html" %} {% include "_shared/requirement_block/multi_line_metas.jinja.html" %} -
- {%- if config.is_running_on_server -%} Edit, Delete, @@ -45,6 +36,6 @@ +R⬇ {%- endif -%} -
+ diff --git a/strictdoc/export/html/templates/_shared/requirement_block/comment.jinja.html b/strictdoc/export/html/templates/_shared/requirement_block/comment.jinja.html index c58186367..0dab10323 100644 --- a/strictdoc/export/html/templates/_shared/requirement_block/comment.jinja.html +++ b/strictdoc/export/html/templates/_shared/requirement_block/comment.jinja.html @@ -1,6 +1,6 @@ {%- if requirement.comments %} {%- for comment in requirement.comments %} -
+
{{ renderer.render_comment(comment) }}
{%- endfor %} diff --git a/strictdoc/export/html/templates/_shared/requirement_block/files_list.jinja.html b/strictdoc/export/html/templates/_shared/requirement_block/files_list.jinja.html index 19653b672..12a232dd7 100644 --- a/strictdoc/export/html/templates/_shared/requirement_block/files_list.jinja.html +++ b/strictdoc/export/html/templates/_shared/requirement_block/files_list.jinja.html @@ -6,19 +6,19 @@ {%- if config.experimental_enable_file_traceability -%} {%- set requirement_file_links = traceability_index.get_requirement_file_links(requirement) %} {%- if requirement_file_links %} -