Created
November 29, 2020 06:27
-
-
Save kdubbels/e3a1d051955a5da69c4060a1f860c661 to your computer and use it in GitHub Desktop.
Musica Viva by Josef Müller-Brockmann
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!-- based on the pioneering graphic design of Josef Müller-Brockmann --> | |
<!-- see the basis for this here: | |
https://i1.wp.com/www.grapheine.com/wp-content/uploads/2013/03/MULLER-BROCKMANN-music-geometric-poster.jpg?quality=90&strip=all&ssl=1 | |
--> | |
<!-- learn more about Josef Müller-Brockmann here: https://www.grapheine.com/en/history-of-graphic-design/graphic-designer-muller-brockmann-swiss-style --> | |
<div class="poster-container"> | |
<div class="poster"> | |
<svg version="1.1" xmlns="http://www.w3.org/2000/svg"> | |
<g class="group-10"> | |
<circle class="stroke-30" cx="300" cy="300" r="250"/> | |
<circle class="stroke-29" cx="300" cy="300" r="250"/> | |
<circle class="stroke-28" cx="300" cy="300" r="250"/> | |
</g> | |
<g class="group-9"> | |
<circle class="stroke-27" cx="300" cy="300" r="225"/> | |
<circle class="stroke-26" cx="300" cy="300" r="225"/> | |
<circle class="stroke-25" cx="300" cy="300" r="225"/> | |
</g> | |
<g class="group-8"> | |
<circle class="stroke-24" cx="300" cy="300" r="200"/> | |
<circle class="stroke-23" cx="300" cy="300" r="200"/> | |
<circle class="stroke-22" cx="300" cy="300" r="200"/> | |
</g> | |
<g class="group-7"> | |
<circle class="stroke-21" cx="300" cy="300" r="175"/> | |
<circle class="stroke-20" cx="300" cy="300" r="175"/> | |
<circle class="stroke-19" cx="300" cy="300" r="175"/> | |
</g> | |
<g class="group-6"> | |
<circle class="stroke-18" cx="300" cy="300" r="150"/> | |
<circle class="stroke-17" cx="300" cy="300" r="150"/> | |
<circle class="stroke-16" cx="300" cy="300" r="150"/> | |
</g> | |
<g class="group-5"> | |
<circle class="stroke-15" cx="300" cy="300" r="125"/> | |
<circle class="stroke-14" cx="300" cy="300" r="125"/> | |
<circle class="stroke-13" cx="300" cy="300" r="125"/> | |
</g> | |
<g class="group-4"> | |
<circle class="stroke-12" cx="300" cy="300" r="100"/> | |
<circle class="stroke-11" cx="300" cy="300" r="100"/> | |
<circle class="stroke-10" cx="300" cy="300" r="100"/> | |
</g> | |
<g class="group-3"> | |
<circle class="stroke-9" cx="300" cy="300" r="75"/> | |
<circle class="stroke-8" cx="300" cy="300" r="75"/> | |
<circle class="stroke-7" cx="300" cy="300" r="75"/> | |
</g> | |
<g class="group-2"> | |
<circle class="stroke-6" cx="300" cy="300" r="50"/> | |
<circle class="stroke-5" cx="300" cy="300" r="50"/> | |
<circle class="stroke-4" cx="300" cy="300" r="50"/> | |
</g> | |
<g class="group-1"> | |
<circle class="stroke-3" cx="300" cy="300" r="25"/> | |
<circle class="stroke-2" cx="300" cy="300" r="25"/> | |
<circle class="stroke-1" cx="300" cy="300" r="25"/> | |
</g> | |
</svg> | |
<h1><span>musica</span> <span>viva</span> | |
</h1> | |
<p class='p-1'>donnerstag, den 7.january 1971</p> | |
<p class='p-2'>20.15 uhr grosser tonhallesaal</p> | |
<p class='p-3'>zweites musica viva-konzert der tonhalle-gesellschaft zürich</p> | |
<br/> | |
<p class='p-4'>leitung ernest bour</p> | |
<p class='p-5'>solist hansheinz schneeberger</p> | |
<p class='p-6'>orchester tonhalle-orchester</p> | |
<br/> | |
<p class='p-7'>klaus huber violinkonzert«tempora»</p> | |
<p class='p-8'>karl amadeus hartmann siebente sinfonie</p> | |
<br/> | |
</div> | |
</div> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$yellow: #fcb741; | |
$green: #44cb4c; | |
$red: #da2842; | |
$background: #efefe7; | |
$red-type: #9d4132; | |
// I know this is an import somehow :grimace: | |
$pi: 3.14159265359; | |
@function calculateDash($radius) { | |
$result: (($radius * 2) * $pi) / 16; | |
@return $result; | |
} | |
@function bothDashes($radius) { | |
$result: (($radius * 2) * $pi) / 16; | |
@return calculateDash($radius), calculateDash($radius)*3; | |
} | |
$group-1-dashes: bothDashes(25); | |
$group-2-dashes: bothDashes(50); | |
$group-3-dashes: bothDashes(75); | |
$group-4-dashes: bothDashes(100); | |
$group-5-dashes: bothDashes(125); | |
$group-6-dashes: bothDashes(150); | |
$group-7-dashes: bothDashes(175); | |
$group-8-dashes: bothDashes(200); | |
$group-9-dashes: bothDashes(225); | |
$group-10-dashes: bothDashes(250); | |
@function pow($base, $exponent) { | |
$result: 1; | |
@for $_ from 1 through $exponent { | |
$result: $result * $base; | |
} | |
@return $result; | |
} | |
.stroke-1 { | |
stroke: $yellow; | |
stroke-width: 5; | |
// stroke-dasharray: 58.9, 176.7; | |
stroke-dasharray: $group-1-dashes; | |
fill: none; | |
transform-origin: center; | |
} | |
.stroke-2 { | |
stroke: $green; | |
stroke-width: 5; | |
stroke-dasharray: $group-1-dashes; | |
fill: none; | |
transform-origin: center; | |
transform: rotate(22.5deg); | |
} | |
.stroke-3 { | |
stroke: $red; | |
stroke-width: 5; | |
stroke-dasharray: $group-1-dashes; | |
fill: none; | |
transform-origin: center; | |
transform: rotate(45deg); | |
} | |
.stroke-4 { | |
stroke: $yellow; | |
stroke-width: 5; | |
stroke-dasharray: $group-2-dashes; | |
fill: none; | |
transform-origin: center; | |
} | |
.stroke-5 { | |
stroke: $green; | |
stroke-width: 5; | |
stroke-dasharray: $group-2-dashes; | |
fill: none; | |
transform-origin: center; | |
transform: rotate(22.5deg); | |
} | |
.stroke-6 { | |
stroke: $red; | |
stroke-width: 5; | |
stroke-dasharray: $group-2-dashes; | |
fill: none; | |
transform-origin: center; | |
transform: rotate(45deg); | |
} | |
.stroke-7 { | |
stroke: $yellow; | |
stroke-width: 5; | |
stroke-dasharray: $group-3-dashes; | |
fill: none; | |
transform-origin: center; | |
} | |
.stroke-8 { | |
stroke: $green; | |
stroke-width: 5; | |
stroke-dasharray: $group-3-dashes; | |
fill: none; | |
transform-origin: center; | |
transform: rotate(22.5deg); | |
} | |
.stroke-9 { | |
stroke: $red; | |
stroke-width: 5; | |
stroke-dasharray: $group-3-dashes; | |
fill: none; | |
transform-origin: center; | |
transform: rotate(45deg); | |
} | |
.stroke-10 { | |
stroke: $yellow; | |
stroke-width: 5; | |
stroke-dasharray: $group-4-dashes; | |
fill: none; | |
transform-origin: center; | |
} | |
.stroke-11 { | |
stroke: $green; | |
stroke-width: 5; | |
stroke-dasharray: $group-4-dashes; | |
fill: none; | |
transform-origin: center; | |
transform: rotate(22.5deg); | |
} | |
.stroke-12 { | |
stroke: $red; | |
stroke-width: 5; | |
stroke-dasharray: $group-4-dashes; | |
fill: none; | |
transform-origin: center; | |
transform: rotate(45deg); | |
} | |
.stroke-13 { | |
stroke: $yellow; | |
stroke-width: 5; | |
stroke-dasharray: $group-5-dashes; | |
fill: none; | |
transform-origin: center; | |
} | |
.stroke-14 { | |
stroke: $green; | |
stroke-width: 5; | |
stroke-dasharray: $group-5-dashes; | |
fill: none; | |
transform-origin: center; | |
transform: rotate(22.5deg); | |
} | |
.stroke-15 { | |
stroke: $red; | |
stroke-width: 5; | |
stroke-dasharray: $group-5-dashes; | |
fill: none; | |
transform-origin: center; | |
transform: rotate(45deg); | |
} | |
.stroke-16 { | |
stroke: $yellow; | |
stroke-width: 5; | |
stroke-dasharray: $group-6-dashes; | |
fill: none; | |
transform-origin: center; | |
} | |
.stroke-17 { | |
stroke: $green; | |
stroke-width: 5; | |
stroke-dasharray: $group-6-dashes; | |
fill: none; | |
transform-origin: center; | |
transform: rotate(22.5deg); | |
} | |
.stroke-18 { | |
stroke: $red; | |
stroke-width: 5; | |
stroke-dasharray: $group-6-dashes; | |
fill: none; | |
transform-origin: center; | |
transform: rotate(45deg); | |
} | |
.stroke-19 { | |
stroke: $yellow; | |
stroke-width: 5; | |
stroke-dasharray: $group-7-dashes; | |
fill: none; | |
transform-origin: center; | |
} | |
.stroke-20 { | |
stroke: $green; | |
stroke-width: 5; | |
stroke-dasharray: $group-7-dashes; | |
fill: none; | |
transform-origin: center; | |
transform: rotate(22.5deg); | |
} | |
.stroke-21 { | |
stroke: $red; | |
stroke-width: 5; | |
stroke-dasharray: $group-7-dashes; | |
fill: none; | |
transform-origin: center; | |
transform: rotate(45deg); | |
} | |
.stroke-22 { | |
stroke: $yellow; | |
stroke-width: 5; | |
// stroke-dasharray: 29.45, 88.35; | |
stroke-dasharray: $group-8-dashes; | |
fill: none; | |
transform-origin: center; | |
} | |
.stroke-23 { | |
stroke: $green; | |
stroke-width: 5; | |
stroke-dasharray: $group-8-dashes; | |
fill: none; | |
transform-origin: center; | |
transform: rotate(22.5deg); | |
} | |
.stroke-24 { | |
stroke: $red; | |
stroke-width: 5; | |
stroke-dasharray: $group-8-dashes; | |
fill: none; | |
transform-origin: center; | |
transform: rotate(45deg); | |
} | |
.stroke-25 { | |
stroke: $yellow; | |
stroke-width: 5; | |
stroke-dasharray: $group-9-dashes; | |
fill: none; | |
transform-origin: center; | |
} | |
.stroke-26 { | |
stroke: $green; | |
stroke-width: 5; | |
stroke-dasharray: $group-9-dashes; | |
fill: none; | |
transform-origin: center; | |
transform: rotate(22.5deg); | |
} | |
.stroke-27 { | |
stroke: $red; | |
stroke-width: 5; | |
stroke-dasharray: $group-9-dashes; | |
fill: none; | |
transform-origin: center; | |
transform: rotate(45deg); | |
} | |
.stroke-28 { | |
stroke: $yellow; | |
stroke-width: 5; | |
stroke-dasharray: $group-10-dashes; | |
fill: none; | |
transform-origin: center; | |
} | |
.stroke-29 { | |
stroke: $green; | |
stroke-width: 5; | |
stroke-dasharray: $group-10-dashes; | |
fill: none; | |
transform-origin: center; | |
transform: rotate(22.5deg); | |
} | |
.stroke-30 { | |
stroke: $red; | |
stroke-width: 5; | |
stroke-dasharray: $group-10-dashes; | |
fill: none; | |
transform-origin: center; | |
transform: rotate(45deg); | |
} | |
.group-2, .group-6 { | |
transform-origin: center; | |
transform: rotate(-22.5deg) | |
} | |
.group-3, .group-7 { | |
transform-origin: center; | |
transform: rotate(-45deg) | |
} | |
.group-4, .group-8 { | |
transform-origin: center; | |
transform: rotate(-67.5deg) | |
} | |
.group-5, .group-9 { | |
transform-origin: center; | |
transform: rotate(-90deg) | |
} | |
.group-10 { | |
transform-origin: center; | |
transform: rotate(-22.5deg) | |
} | |
/* DEMO STYLES */ | |
body { | |
background: $background; | |
font-family: 'Helvetica' | |
} | |
h1 { | |
text-align: right; | |
margin-top: 0; | |
} | |
span { | |
margin-right: 50px; | |
} | |
svg { | |
width: 600px; | |
height: 600px; | |
} | |
.poster { | |
width: 600px; | |
} | |
.poster-container { | |
display: flex; | |
justify-content: center; | |
} | |
p { | |
color: $red-type; | |
font-size: 12px; | |
margin: 0; // x-value gets overriden later | |
} | |
.p-1 { | |
margin-left: 50px; | |
} | |
.p-2 { | |
margin-left: 75px; | |
} | |
.p-3 { | |
margin-left: 100px; | |
} | |
.p-4 { | |
margin-left: 150px; | |
} | |
.p-5 { | |
margin-left: 175px; | |
} | |
.p-6 { | |
margin-left: 200px; | |
} | |
.p-7 { | |
margin-left: 250px; | |
} | |
.p-8 { | |
margin-left: 275px; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment