This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

core / appview / pages / templates / brand / brand.html
10 kB 212 lines
1{{ define "title" }}Brand &middot; Tangled{{ end }} 2 3{{ define "content" }} 4<div class="grid grid-cols-10"> 5 <header class="col-span-full md:col-span-10 px-6 py-2 mb-4"> 6 <h1 class="text-2xl font-bold dark:text-white mb-1">Brand</h1> 7 <p class="text-gray-500 dark:text-gray-300 mb-1"> 8 Assets and guidelines for using Tangled's logo and brand elements. 9 </p> 10 </header> 11 12 <main class="col-span-full md:col-span-10 bg-white dark:bg-gray-800 drop-shadow-sm rounded p-6 md:px-10"> 13 <div class="space-y-12"> 14 15 <!-- introduction section --> 16 <section> 17 <p class="text-gray-500 dark:text-gray-300 mb-2"> 18 Tangled's logo and mascot is <strong>Dolly</strong>, the first ever <em>cloned</em> mammal. Please 19 follow the below guidelines when using Dolly and the logotype. 20 </p> 21 </section> 22 23 <!-- black logotype section --> 24 <section class="grid grid-cols-1 lg:grid-cols-2 gap-8 items-start"> 25 <div class="order-2"> 26 <div id="asset-logotype-black" data-filename="tangled_logotype_black.svg" class="border border-gray-200 dark:border-gray-700 p-8 sm:p-16 bg-gray-50 dark:bg-gray-100 rounded"> 27 {{ template "fragments/dolly/logotype" (dict "Classes" "w-full max-w-sm mx-auto" "FillColor" "black") }} 28 </div> 29 </div> 30 <div class="order-1"> 31 <h2 class="text-xl font-semibold dark:text-white mb-3">Black logotype</h2> 32 <p class="text-gray-500 dark:text-gray-300 mb-4">For use on light-colored backgrounds.</p> 33 <p class="text-gray-700 dark:text-gray-300 mb-4"> 34 This is the preferred version of the logotype, featuring dark text and elements, ideal for light 35 backgrounds and designs. 36 </p> 37 <button type="button" data-download="#asset-logotype-black" class="btn flex items-center gap-2 w-fit"> 38 {{ i "download" "w-4 h-4" }} Download SVG 39 </button> 40 </div> 41 </section> 42 43 <!-- white logotype section --> 44 <section class="grid grid-cols-1 lg:grid-cols-2 gap-8 items-start"> 45 <div class="order-2"> 46 <div id="asset-logotype-white" data-filename="tangled_logotype_white.svg" class="bg-black p-8 sm:p-16 rounded"> 47 {{ template "fragments/dolly/logotype" (dict "Classes" "w-full max-w-sm mx-auto" "FillColor" "white") }} 48 </div> 49 </div> 50 <div class="order-1"> 51 <h2 class="text-xl font-semibold dark:text-white mb-3">White logotype</h2> 52 <p class="text-gray-500 dark:text-gray-300 mb-4">For use on dark-colored backgrounds.</p> 53 <p class="text-gray-700 dark:text-gray-300 mb-4"> 54 This version features white text and elements, ideal for dark backgrounds 55 and inverted designs. 56 </p> 57 <button type="button" data-download="#asset-logotype-white" class="btn flex items-center gap-2 w-fit"> 58 {{ i "download" "w-4 h-4" }} Download SVG 59 </button> 60 </div> 61 </section> 62 63 <!-- mark only section --> 64 <section class="grid grid-cols-1 lg:grid-cols-2 gap-8 items-start"> 65 <div class="order-2 h-full"> 66 <div class="grid grid-cols-2 gap-2 h-full"> 67 <div id="asset-face-black" data-filename="tangled_dolly_face_black.svg" class="border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-100 p-8 sm:p-12 rounded flex items-center justify-center"> 68 {{ template "fragments/dolly/logo" (dict "Classes" "w-full max-w-16 mx-auto" "FillColor" "black") }} 69 </div> 70 <div id="asset-face-white" data-filename="tangled_dolly_face_white.svg" class="bg-black p-8 sm:p-12 rounded flex items-center justify-center"> 71 {{ template "fragments/dolly/logo" (dict "Classes" "w-full max-w-16 mx-auto" "FillColor" "white") }} 72 </div> 73 </div> 74 </div> 75 <div class="order-1"> 76 <h2 class="text-xl font-semibold dark:text-white mb-3">Mark only</h2> 77 <p class="text-gray-500 dark:text-gray-300 mb-4"> 78 When a smaller 1:1 logo or icon is needed, Dolly's face may be used on its own. 79 </p> 80 <p class="text-gray-700 dark:text-gray-300 mb-4"> 81 <strong class="font-semibold">Note</strong>: for situations where the background 82 is unknown, use the black version for ideal contrast in most environments. 83 </p> 84 <div class="flex flex-wrap gap-2"> 85 <button type="button" data-download="#asset-face-black" class="btn flex items-center gap-2 w-fit"> 86 {{ i "download" "w-4 h-4" }} Black on white 87 </button> 88 <button type="button" data-download="#asset-face-white" class="btn flex items-center gap-2 w-fit"> 89 {{ i "download" "w-4 h-4" }} White on black 90 </button> 91 </div> 92 </div> 93 </section> 94 95 <!-- colored backgrounds section --> 96 <section class="grid grid-cols-1 lg:grid-cols-2 gap-8 items-start"> 97 <div class="order-2"> 98 <div class="grid grid-cols-2 gap-2"> 99 <div class="bg-green-500 p-8 sm:p-12 rounded"> 100 {{ template "fragments/dolly/logo" (dict "Classes" "w-full max-w-16 mx-auto" "FillColor" "white") }} 101 </div> 102 <div class="bg-blue-500 p-8 sm:p-12 rounded"> 103 {{ template "fragments/dolly/logo" (dict "Classes" "w-full max-w-16 mx-auto" "FillColor" "white") }} 104 </div> 105 <div class="bg-yellow-500 p-8 sm:p-12 rounded"> 106 {{ template "fragments/dolly/logo" (dict "Classes" "w-full max-w-16 mx-auto" "FillColor" "white") }} 107 </div> 108 <div class="bg-red-500 p-8 sm:p-12 rounded"> 109 {{ template "fragments/dolly/logo" (dict "Classes" "w-full max-w-16 mx-auto" "FillColor" "white") }} 110 </div> 111 </div> 112 </div> 113 <div class="order-1"> 114 <h2 class="text-xl font-semibold dark:text-white mb-3">Colored backgrounds</h2> 115 <p class="text-gray-500 dark:text-gray-300 mb-4"> 116 White logo mark on colored backgrounds. 117 </p> 118 <p class="text-gray-700 dark:text-gray-300 mb-4"> 119 The white logo mark provides contrast on colored backgrounds. 120 Perfect for more fun design contexts. 121 </p> 122 </div> 123 </section> 124 125 <!-- black logo on pastel backgrounds section --> 126 <section class="grid grid-cols-1 lg:grid-cols-2 gap-8 items-start"> 127 <div class="order-2"> 128 <div class="grid grid-cols-2 gap-2"> 129 <div class="bg-green-200 p-8 sm:p-12 rounded"> 130 {{ template "fragments/dolly/logo" (dict "Classes" "w-full max-w-16 mx-auto" "FillColor" "black") }} 131 </div> 132 <div class="bg-blue-200 p-8 sm:p-12 rounded"> 133 {{ template "fragments/dolly/logo" (dict "Classes" "w-full max-w-16 mx-auto" "FillColor" "black") }} 134 </div> 135 <div class="bg-yellow-200 p-8 sm:p-12 rounded"> 136 {{ template "fragments/dolly/logo" (dict "Classes" "w-full max-w-16 mx-auto" "FillColor" "black") }} 137 </div> 138 <div class="bg-pink-200 p-8 sm:p-12 rounded"> 139 {{ template "fragments/dolly/logo" (dict "Classes" "w-full max-w-16 mx-auto" "FillColor" "black") }} 140 </div> 141 </div> 142 </div> 143 <div class="order-1"> 144 <h2 class="text-xl font-semibold dark:text-white mb-3">Lighter backgrounds</h2> 145 <p class="text-gray-500 dark:text-gray-300 mb-4"> 146 Dark logo mark on lighter, pastel backgrounds. 147 </p> 148 <p class="text-gray-700 dark:text-gray-300 mb-4"> 149 The dark logo mark works beautifully on pastel backgrounds, 150 providing crisp contrast. 151 </p> 152 </div> 153 </section> 154 155 <!-- recoloring section --> 156 <section class="grid grid-cols-1 lg:grid-cols-2 gap-8 items-start"> 157 <div class="order-2"> 158 <div class="bg-yellow-100 border border-yellow-200 p-8 sm:p-16 rounded"> 159 {{ template "fragments/dolly/logotype" (dict "Classes" "w-full max-w-sm mx-auto opacity-60 sepia contrast-75 saturate-50" "FillColor" "black") }} 160 </div> 161 </div> 162 <div class="order-1"> 163 <h2 class="text-xl font-semibold dark:text-white mb-3">Recoloring</h2> 164 <p class="text-gray-500 dark:text-gray-300 mb-4"> 165 Custom coloring of the logotype is permitted. 166 </p> 167 <p class="text-gray-700 dark:text-gray-300 mb-4"> 168 Recoloring the logotype is allowed as long as readability is maintained. 169 </p> 170 <p class="text-gray-700 dark:text-gray-300 text-sm"> 171 <strong>Example:</strong> Gray/sand colored logotype on a light yellow/tan background. 172 </p> 173 </div> 174 </section> 175 176 </div> 177 </main> 178</div> 179 180<script> 181 (function () { 182 function downloadSvg(svg, filename) { 183 var clone = svg.cloneNode(true); 184 // strip tailwind utility classes — they're meaningless in a standalone file 185 clone.removeAttribute('class'); 186 clone.querySelectorAll('[class]').forEach(function (el) { el.removeAttribute('class'); }); 187 if (!clone.getAttribute('xmlns')) { 188 clone.setAttribute('xmlns', 'http://www.w3.org/2000/svg'); 189 } 190 var data = '<?xml version="1.0" encoding="UTF-8"?>\n' + new XMLSerializer().serializeToString(clone); 191 var url = URL.createObjectURL(new Blob([data], { type: 'image/svg+xml' })); 192 var a = document.createElement('a'); 193 a.href = url; 194 a.download = filename || 'tangled.svg'; 195 document.body.appendChild(a); 196 a.click(); 197 a.remove(); 198 URL.revokeObjectURL(url); 199 } 200 201 document.querySelectorAll('[data-download]').forEach(function (btn) { 202 btn.addEventListener('click', function () { 203 var container = document.querySelector(btn.dataset.download); 204 if (!container) return; 205 var svg = container.querySelector('svg'); 206 if (!svg) return; 207 downloadSvg(svg, container.dataset.filename); 208 }); 209 }); 210 })(); 211</script> 212{{ end }}