diff --git a/docs/app.css b/docs/app.css index 6512b08..0f941a5 100644 --- a/docs/app.css +++ b/docs/app.css @@ -2,6 +2,22 @@ CUSTOM CSS */ +@font-face { + font-family: 'Open Sans'; + src: url('./fonts/open_sans/OpenSans-Regular.ttf') format('truetype'); +} + +@font-face { + font-family: 'Open Sans'; + src: url('./fonts/open_sans/OpenSans-Bold.ttf') format('truetype'); + font-weight: bold; +} + +@font-face { + font-family: 'Poppins'; + src: url('./fonts/poppins/Poppins-SemiBold.ttf') format('truetype'); +} + :root { --color-accent-1: #01bfad; --color-accent-2: #a98fef; @@ -10,23 +26,38 @@ CUSTOM CSS --color-accent-5: #cb46bf; --color-accent-6: #2d4b73; - --color-gray-1: #f5f5f5; - --color-gray-2: #495057; - --color-gray-3: #212529; - --color-gray-4: #1b1f22; - - --base-bg-color: var(--color-gray-1); - --body-bg-color: #ffffff; - --font-color: var(--color-gray-3); - --font-color-inverse: #ffffff; - --font-family: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', - 'Noto Sans', 'Liberation Sans', Arial, sans-serif, 'Apple Color Emoji', - 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; + --color-white: #ffffff; + + /* TODO: make list of colors consistent */ + --color-grey-1: #e6e7e8; + --color-grey-2: #495057; + --color-grey-3: #212529; + --color-grey-4: #1b1f22; + + --color-grey-10: #212121; + --color-grey-20: #424242; + --color-grey-30: #616161; + --color-grey-40: #767676; + --color-grey-50: #9e9e9e; + --color-grey-60: #bdbdbd; + --color-grey-70: #e0e0e0; + --color-grey-80: #eeeeee; + --color-grey-90: #f5f5f5; + --color-grey-95: #fafafa; + + --base-bg-color: var(--color-grey-1); + --body-bg-color: var(--color-white); + --font-color: var(--color-grey-3); + --font-color-inverse: var(--color-white); + --font-color-grey: var(--color-grey-40); + --font-family: 'Open Sans', monospace; + --font-family-header: 'Poppins', monospace; --color-primary: #191970; --color-secondary: #feaa00; - --border-color: var(--color-gray-2); + --border-color: var(--color-grey-70); + --border-radius: 0.25rem; --size-1: 3rem; --size-2: 1.75rem; @@ -38,24 +69,19 @@ CUSTOM CSS --icon-cross: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e"); - --btn-bg-default: var(--color-gray-1); + --btn-bg-default: var(--color-grey-1); --btn-color-default: var(--font-color); --modal-width: 500px; } + @media (prefers-color-scheme: dark) { :root { - --base-bg-color: var(--color-gray-3); - --body-bg-color: var(--color-gray-4); - --font-color: #ffffff; - --font-color-inverse: #ffffff; - - --border-color: var(--color-gray-2); - - --color-primary: #191970; - --color-secondary: #feaa00; - - --btn-bg-default: var(--color-gray-3); - --btn-color-default: var(--font-color); + --base-bg-color: var(--color-grey-3); + --body-bg-color: var(--color-grey-4); + --font-color: var(--color-white); + --font-color-inverse: var(--color-grey-4); + --border-color: var(--color-grey-2); + --btn-bg-default: var(--color-grey-3); } } @@ -66,11 +92,13 @@ html { body { font-family: var(--font-family); + font-weight: normal; padding: 2rem; max-width: 1400px; margin: auto; background-color: var(--body-bg-color); border: 1px solid var(--border-color); + border-radius: var(--border-radius); color: var(--font-color); } @@ -80,9 +108,10 @@ body { h1, h2, h3 { + font-family: var(--font-family-header); color: var(--header-color); margin-bottom: 1rem; - font-weight: 900; + font-weight: 600; } h1 { @@ -140,6 +169,10 @@ h3 { background-color: var(--color-accent-6); } +.text-gray { + color: var(--font-color-grey); +} + /* CONTAINERS -------------------------------*/ @@ -162,8 +195,22 @@ h3 { .d-grid { display: grid; - gap: 1rem; - grid-template-columns: repeat(4, 1fr); + + &.items { + gap: 2rem; + grid-template-columns: repeat(auto-fit, minmax(500px, 1fr)); + } + &.quadrants { + gap: 1rem; + grid-template-columns: repeat(auto-fit, minmax(10px, 1fr)); + } +} + +.quadrants { + background-color: var(--base-bg-color); + padding: 2rem; + border: 1px solid var(--border-color); + border-radius: var(--border-radius); } /* BUTTONS @@ -193,7 +240,7 @@ button.btn-default { button.btn-primary { background-color: var(--color-primary); - color: var(--font-color-inverse); + color: var(--color-white); } button.btn-transparent { @@ -216,9 +263,10 @@ button.btn-close { } .btn-image { - flex-direction: row-reverse; align-items: center; gap: 0.5rem; + padding: 0.5rem; + width: 100%; } button.btn-sm { @@ -240,7 +288,7 @@ ul { padding: 0.5rem 0.75rem; border-radius: 9999px; font-weight: bold; - color: var(--font-color-inverse); + color: var(--color-grey-3); font-size: var(--font-size-small); display: flex; justify-content: center; @@ -305,7 +353,7 @@ ul { } .modal-header { - /* border-bottom: 1px solid var(--border-color); */ + border-bottom: 1px solid var(--border-color); padding: 2rem; display: flex; justify-content: space-between; @@ -316,7 +364,7 @@ ul { } .modal-footer { - /* border-top: 1px solid var(--border-color); */ + border-top: 1px solid var(--border-color); padding: 2rem; display: flex; justify-content: end; @@ -330,3 +378,72 @@ body.modal-open { display: flex; gap: 0.5rem; } + +/* RADAR +-------------------------------*/ + +.blip { + cursor: pointer; +} + +.blip path, +.blip circle { + stroke-width: 2px; + stroke-linejoin: round; + stroke-linecap: round; +} + +.blip > text { + fill: var(--font-color-inverse); + font-family: var(--font-family-header); + font-size: var(--font-size-small); + pointer-events: none; + user-select: none; +} + +#radar .legend-header { + font-family: var(--font-family); + font-size: var(--size-3); + font-weight: 900; + fill: var(--font-color); +} +#radar .legend-text { + font-family: var(--font-family); + fill: var(--font-color); +} + +#radar .line { + stroke-width: 2; +} + +#radar .circle { + fill: none; + stroke-width: 2; +} + +#radar .circle-text { + opacity: 0.35; + font-family: var(--font-family-header); + font-size: var(--size-1); + pointer-events: none; + user-select: none; +} + +#radar #bubble { + pointer-events: none; + user-select: none; +} + +#bubble rect { + fill: var(--color-grey-10); +} + +#bubble path { + fill: var(--color-grey-10); +} + +#bubble text { + font-family: var(--font-family); + font-size: var(--font-size-small); + fill: var(--color-white); +} diff --git a/docs/app.js b/docs/app.js index 9966793..c14ab46 100644 --- a/docs/app.js +++ b/docs/app.js @@ -22,15 +22,16 @@ fetch('./data.json') radar_visualization(radarInput); dataSet.forEach(function (item) { - let label = document.createElement('button'); - label.setAttribute( + // create button + const button = document.createElement('button'); + button.setAttribute( 'class', 'btn-transparent btn-sm text-left d-flex btn-image', ); const params = `openTechDetails(${item.index})`; - label.setAttribute('onClick', params); - label.textContent = item.label; + button.setAttribute('onClick', params); + // create favicon const favicon = document.createElement('img'); favicon.setAttribute('class', 'img-circle'); @@ -46,10 +47,19 @@ fetch('./data.json') ); } item.favObjectUrl = favicon.getAttribute('src'); - label.appendChild(favicon); + button.appendChild(favicon); + + // create index + label + const index = document.createElement('span'); + const label = document.createElement('span'); + index.textContent = '#' + item.id; + index.setAttribute('class', 'text-gray'); + label.textContent = item.label; + button.appendChild(index); + button.appendChild(label); - let li = document.createElement('li'); - li.appendChild(label); + const li = document.createElement('li'); + li.appendChild(button); const id = item.quadrant + '-' + item.ring; document.getElementById(id).appendChild(li); diff --git a/docs/config.js b/docs/config.js index c577b48..ad9df9b 100644 --- a/docs/config.js +++ b/docs/config.js @@ -32,25 +32,18 @@ const RINGS = [ { name: 'HOLD', color: 'var(--color-accent-4)', id: 3 }, ]; +const RADAR_WIDTH = 1400 - 4 * 16; + const RADAR_CONFIG = { svg_id: 'radar', - width: 1400, + width: RADAR_WIDTH, height: 1000, colors: { - background: 'var(--bg-base-color)', - grid: '#dddde0', - inactive: '#ddd', - bubble: 'var(--font-color-inverse)', + grid: 'var(--border-color)', + inactive: 'var(--color-grey-1)', }, - title: 'Finaps Tech Radar', - // date: data.date, quadrants: QUADRANTS, rings: RINGS, print_rings: true, - print_title: false, print_legend: true, - print_layout: false, - links_in_new_tabs: true, - // zoomed_quadrant: 0, - // entries: data.entries, }; diff --git a/docs/data.json b/docs/data.json index 38589c5..11b6ecb 100644 --- a/docs/data.json +++ b/docs/data.json @@ -26,7 +26,7 @@ "description": "Core browser language; SCSS is a mature extension that makes writing large CSS code bases easier (although CSS is coming close, so this might update the future)", "link": "https://sass-lang.com/", "active": true, - "moved": 0 + "moved": 1 }, { "label": "Adobe Creative Cloud", diff --git a/docs/fonts/open_sans/OpenSans-Bold.ttf b/docs/fonts/open_sans/OpenSans-Bold.ttf new file mode 100644 index 0000000..98c74e0 Binary files /dev/null and b/docs/fonts/open_sans/OpenSans-Bold.ttf differ diff --git a/docs/fonts/open_sans/OpenSans-Light.ttf b/docs/fonts/open_sans/OpenSans-Light.ttf new file mode 100644 index 0000000..ea175cc Binary files /dev/null and b/docs/fonts/open_sans/OpenSans-Light.ttf differ diff --git a/docs/fonts/open_sans/OpenSans-Regular.ttf b/docs/fonts/open_sans/OpenSans-Regular.ttf new file mode 100644 index 0000000..67803bb Binary files /dev/null and b/docs/fonts/open_sans/OpenSans-Regular.ttf differ diff --git a/docs/fonts/poppins/Poppins-SemiBold.ttf b/docs/fonts/poppins/Poppins-SemiBold.ttf new file mode 100644 index 0000000..74c726e Binary files /dev/null and b/docs/fonts/poppins/Poppins-SemiBold.ttf differ diff --git a/docs/index.html b/docs/index.html index 49dfc01..c2f604d 100644 --- a/docs/index.html +++ b/docs/index.html @@ -31,10 +31,10 @@

Finaps Tech Radar

-
+

Languages & Frameworks

-
+
ADOPT
    @@ -51,13 +51,11 @@

    Languages & Frameworks

    HOLD
      -
      -

      Tools

      -
      +
      ADOPT
        @@ -76,12 +74,9 @@

        Tools

        -
        - -

        Platforms & Operations

        -
        +
        ADOPT
          @@ -102,7 +97,7 @@

          Platforms & Operations

          Methods & Patterns

          -
          +
          ADOPT
            @@ -122,6 +117,7 @@

            Methods & Patterns

            +