diff --git a/.astro/data-store.json b/.astro/data-store.json index d60ce25..e70e52a 100644 --- a/.astro/data-store.json +++ b/.astro/data-store.json @@ -1 +1 @@ -[["Map",1,2],"meta::meta",["Map",3,4,5,6],"astro-version","5.11.1","astro-config-digest","{\"root\":{},\"srcDir\":{},\"publicDir\":{},\"outDir\":{},\"cacheDir\":{},\"compressHTML\":true,\"base\":\"/\",\"trailingSlash\":\"ignore\",\"output\":\"static\",\"scopedStyleStrategy\":\"attribute\",\"build\":{\"format\":\"directory\",\"client\":{},\"server\":{},\"assets\":\"_astro\",\"serverEntry\":\"entry.mjs\",\"redirects\":true,\"inlineStylesheets\":\"auto\",\"concurrency\":1},\"server\":{\"open\":false,\"host\":false,\"port\":4321,\"streaming\":true,\"allowedHosts\":[]},\"redirects\":{},\"image\":{\"endpoint\":{\"route\":\"/_image\"},\"service\":{\"entrypoint\":\"astro/assets/services/sharp\",\"config\":{}},\"domains\":[],\"remotePatterns\":[],\"responsiveStyles\":false},\"devToolbar\":{\"enabled\":true},\"markdown\":{\"syntaxHighlight\":{\"type\":\"shiki\",\"excludeLangs\":[\"math\"]},\"shikiConfig\":{\"langs\":[],\"langAlias\":{},\"theme\":\"github-dark\",\"themes\":{},\"wrap\":false,\"transformers\":[]},\"remarkPlugins\":[],\"rehypePlugins\":[],\"remarkRehype\":{},\"gfm\":true,\"smartypants\":true},\"security\":{\"checkOrigin\":true},\"env\":{\"schema\":{},\"validateSecrets\":false},\"experimental\":{\"clientPrerender\":false,\"contentIntellisense\":false,\"headingIdCompat\":false,\"preserveScriptOrder\":false,\"liveContentCollections\":false,\"csp\":false},\"legacy\":{\"collections\":false}}"] \ No newline at end of file +[["Map",1,2],"meta::meta",["Map",3,4,5,6],"astro-version","5.11.1","astro-config-digest","{\"root\":{},\"srcDir\":{},\"publicDir\":{},\"outDir\":{},\"cacheDir\":{},\"compressHTML\":true,\"base\":\"/\",\"trailingSlash\":\"ignore\",\"output\":\"server\",\"scopedStyleStrategy\":\"attribute\",\"build\":{\"format\":\"directory\",\"client\":{},\"server\":{},\"assets\":\"_astro\",\"serverEntry\":\"entry.mjs\",\"redirects\":true,\"inlineStylesheets\":\"auto\",\"concurrency\":1},\"server\":{\"open\":false,\"host\":true,\"port\":4321,\"streaming\":true,\"allowedHosts\":[]},\"redirects\":{},\"image\":{\"endpoint\":{\"route\":\"/_image\",\"entrypoint\":\"astro/assets/endpoint/node\"},\"service\":{\"entrypoint\":\"astro/assets/services/sharp\",\"config\":{}},\"domains\":[],\"remotePatterns\":[],\"responsiveStyles\":false},\"devToolbar\":{\"enabled\":true},\"markdown\":{\"syntaxHighlight\":{\"type\":\"shiki\",\"excludeLangs\":[\"math\"]},\"shikiConfig\":{\"langs\":[],\"langAlias\":{},\"theme\":\"github-dark\",\"themes\":{},\"wrap\":false,\"transformers\":[]},\"remarkPlugins\":[],\"rehypePlugins\":[],\"remarkRehype\":{},\"gfm\":true,\"smartypants\":true},\"security\":{\"checkOrigin\":true},\"env\":{\"schema\":{},\"validateSecrets\":false},\"experimental\":{\"clientPrerender\":false,\"contentIntellisense\":false,\"headingIdCompat\":false,\"preserveScriptOrder\":false,\"liveContentCollections\":false,\"csp\":false},\"legacy\":{\"collections\":false},\"session\":{\"driver\":\"fs-lite\",\"options\":{\"base\":\"/var/home/user01/Projekte/cc24-hub/node_modules/.astro/sessions\"}}}"] \ No newline at end of file diff --git a/src/components/ToolFilters.astro b/src/components/ToolFilters.astro index bfa5594..b809fa4 100644 --- a/src/components/ToolFilters.astro +++ b/src/components/ToolFilters.astro @@ -108,9 +108,10 @@ const sortedTags = Object.entries(tagFrequency) -
- - + +
+ + + +
+
+
+ {allMatrixTools.length} + Tools in Matrix +
+
+ {collaborationTools.length} + Collaboration Tools +
+
+ {allMatrixTools.length + collaborationTools.length} + Gesamt sichtbar +
+
- -

- -
- -
- -
- - - -
+ - \ No newline at end of file diff --git a/src/data/tools.yaml b/src/data/tools.yaml index c2b5de1..d87e746 100644 --- a/src/data/tools.yaml +++ b/src/data/tools.yaml @@ -697,8 +697,17 @@ tools: kollaborative Phasen und sichere Speicherung von Beweismitteln mit Versionierung. domains: + - incident-response + - law-enforcement + - malware-analysis + - fraud-investigation + - network-forensics + - mobile-forensics + - cloud-forensics + - ics-forensics phases: - collaboration-general + - reporting platforms: - Web skillLevel: novice diff --git a/src/pages/status.astro b/src/pages/status.astro index 1f17842..1076cac 100644 --- a/src/pages/status.astro +++ b/src/pages/status.astro @@ -46,14 +46,14 @@ const hostedServices = data.tools.filter((tool: any) => { ))}
- + diff --git a/src/styles/global.css b/src/styles/global.css index 3ea8951..565f46c 100644 --- a/src/styles/global.css +++ b/src/styles/global.css @@ -333,6 +333,7 @@ input[type="checkbox"] { width: 100%; border-collapse: collapse; min-width: 800px; + table-layout: fixed; } .matrix-table th, @@ -341,6 +342,8 @@ input[type="checkbox"] { padding: 0.75rem; text-align: left; transition: background-color 0.2s ease, border-color 0.2s ease; + overflow: hidden; /* Prevent content overflow */ + word-wrap: break-word; } .matrix-table th { @@ -348,18 +351,34 @@ input[type="checkbox"] { font-weight: 600; position: sticky; top: 0; + z-index: 1; } .matrix-table th:first-child { - position: sticky; - left: 0; - z-index: 2; background-color: var(--color-bg-secondary); } +/* Ensure uniform column widths */ +.matrix-table th:first-child, +.matrix-table td:first-child { + width: 200px; + min-width: 200px; + max-width: 200px; +} + +.matrix-table th:not(:first-child), +.matrix-table td:not(:first-child) { + width: 150px; + min-width: 150px; + max-width: 150px; +} + .matrix-cell { min-height: 60px; vertical-align: top; + width: 150px; + min-width: 150px; + max-width: 150px; } /* Matrix Highlighting */ @@ -1097,6 +1116,31 @@ footer { min-height: 100px; font-size: 0.8125rem; } + + .matrix-table { + min-width: 600px; /* Reduce minimum width for mobile */ + } + + .matrix-table th:first-child, + .matrix-table td:first-child { + width: 140px; + min-width: 140px; + max-width: 140px; + } + + .matrix-table th:not(:first-child), + .matrix-table td:not(:first-child) { + width: 120px; + min-width: 120px; + max-width: 120px; + } + + .matrix-cell { + width: 120px; + min-width: 120px; + max-width: 120px; + min-height: 50px; + } } @media (width: 600px) {