Nova

Extensions


Readme

body {} h1 {margin-bottom: 0;} h2 {margin: 0; padding: 0 0 16px 0;} h2 {border-bottom : 1px solid #FFF0;} hr {margin: 96px 0 48px 0; border-radius: 3px} p {letter-spacing: 0.05em; font-size: 16px;} @media (prefers-color-scheme: light) { body {background-color: whitesmoke; color: black;} p {color: #666;} .headergrid > div p {color: #888;} .headergrid > div p strong {color: #555;} .headergrid > div h6 {color: #888;} details summary {border-bottom: 1px solid #bbb;} details summary:hover {background-color: #ffffff;} details summary > div:last-child {background: linear-gradient(90deg, #ddd, #ddd);} table thead {border-top: 1px solid #bbb; border-bottom: 1px solid #bbb;} table thead tr {background-color: whitesmoke; border-top: 1px solid #bbb; } table thead tr:nth-child(even) {background-color: whitesmoke; } table thead tr th {border: none; background-color: none; color: #999; border-right: 1px solid #bbb;} table tbody tr {background-color: #D8D8D8; border: none;} table tbody tr:nth-child(even) {background-color: #E4E4E4;} table tbody tr td {border: none; border-bottom: 1px solid #bbb;} span.shortcut {background-color: #f3f3f3; color:#333;} span.elmt {color: white; background-color: crimson;} span.attr {color: white; background-color: dodgerblue;} span.xmpl {color: white; background-color: limegreen;} .contentgrid > div {background: linear-gradient(45deg, #ffffffff, #ffffffff); box-shadow: 0 0 24px #0001; } .contentgrid > div p {} .contentgrid > div p span {color: #444; border-bottom: 4px solid #444;} } @media (prefers-color-scheme: dark) { body {background-color: #1A1A1A; color: #CCC;} p {color: #777;} .headergrid > div p {color: #555;} .headergrid > div h6 {color: #666;} details summary {border-bottom: 1px solid #333;} details summary:hover {background-color: #111111;} details summary > div:last-child {background: linear-gradient(90deg, #2a2a2a, #2a2a2a);} table thead {border-top: 1px solid #333; border-bottom: 1px solid #333;} table thead tr {background-color: #1A1A1A; } table thead tr:nth-child(even) {background-color: #1A1A1A; border-top: 1px solid #333; } table thead tr th {border: none; background-color: none; color: #666; border-right: 1px solid #333;} table tbody tr {background-color: #232323; border: none;} table tbody tr:nth-child(even) {background-color: #202020;} table tbody tr td {border: none; border-bottom: 1px solid #2A2A2A;} span.shortcut {background-color: #111; color:#7a9;} span.elmt {color: crimson; background-color: #211;} span.attr {color: dodgerblue; background-color: #112;} span.xmpl {color: limegreen; background-color: #121;} .contentgrid > div {background: linear-gradient(45deg, #252525, #353535) } .contentgrid > div p {} .contentgrid > div p span {color: #bbb; border-bottom: 4px solid #bbb;} } details {margin-bottom: 0px;} details summary { position: relative; display: flex; flex-direction: row; justify-content: flex-start; align-items: center; width: 100%; padding: 12px 0; cursor: pointer; outline: 0px solid limegreen; } details summary:hover {} details summary > div {} details summary > div:first-child {width: 75%;} details summary > div:last-child {width: 25%; border-radius: 8px; padding: 4px;} details summary > div svg {display: block; width: 100%;} table {font-size: 12px; border-collapse: collapse; width: 100%; margin: 0;} table tr {} table tr:nth-child(even) {} table thead {} table thead tr:nth-child(even) {} table tr th, table tr td {box-sizing: border-box;} table tr th {padding: 8px 4px 2px 4px; text-align: left; font-weight: 400; text-transform: uppercase; font-size: 10px; letter-spacing: 0.1em;} table tr td {padding: 8px 0; } table.detable tr th:nth-child(1) {width: 15%; padding: 8px 0 2px 0;} table.detable tr th:nth-child(2) {width: 40px;} table.detable tr th:nth-child(3) {width: 20% } table.detable tr th:nth-child(4) {width: 120px } table.detable tr th:nth-child(5) {width: auto; padding: 8px 0 2px 12px;} table.detable tr th:last-child {border:none;} table.detable tr td:nth-child(1) {width: 15%; color: #777; font-family: monospace; font-size: 9px; padding: 0 0 0 16px; } table.detable tr td:nth-child(2) {width: 40px; font-family: monospace; font-size: 9px; padding: 0 14px 0 0; text-align: right;} table.detable tr td:nth-child(3) {width: 20%; opacity: 0.7; letter-spacing: 0.1em; } table.detable tr td:nth-child(4) {width: 120px; font-family: monospace; font-size: 11px; padding: 0;} table.detable tr td:nth-child(5) {width: auto; opacity: 0.7; letter-spacing: 0.05em; padding: 0 0 0 12px;} span.shortcut {display: block; padding: 5px 2px 4px 4px; position: relative;} span.shortcut:before {position: absolute; content: '+'; right: 24px; } span.shortcut:after {position: absolute; content: '⇥'; font-size: 19px; margin: -6px 8px 0 0; right: 0;} span.elmt, span.attr, span.xmpl {display: block; text-align: center; padding: 2px 0 2px 0; border-radius: 3px;} span.elmt {letter-spacing: 0.1em; } span.attr {letter-spacing: -0.1em; } span.xmpl {letter-spacing: -0.1em;} .headergrid {display: grid; grid-template-columns: repeat(1, 1fr); grid-template-rows: repeat(4, 1fr);} .headergrid > div {aspect-ratio: 1/1; position: relative; display: flex; flex-direction: column; justify-content: center; align-items: center;} .headergrid > div:before, .headergrid > div:after {position: absolute; content: '';} .headergrid > div:before {bottom:-1px; right:-1px; width: 8px; height: 8px; border-bottom: 1px solid #80808066; border-right: 1px solid #80808066;} .headergrid > div:after {bottom:-9px; right:-9px; width: 8px; height: 8px; border-top: 1px solid #80808066; border-left: 1px solid #80808066;} .headergrid > div:first-child {justify-content: flex-start; align-items: flex-start;} .headergrid > div svg {position: absolute; z-index: -1;} .headergrid > div p {padding: 16px 32px 16px 0; margin: 0; font-weight: 400; letter-spacing: 0.025em; line-height: 1.5em; } .headergrid > div h6 {position: absolute; bottom: -8px; right: 16px; padding: 0; margin: 0; letter-spacing: 0.1em; font-weight: 200; font-size: 11px;} .contentgrid {display: grid; grid-template-columns: repeat(1, 1fr); gap: 16px;} .contentgrid > div {position: relative; padding: 72px 16px 16px 16px; border-radius: 24px;} .contentgrid > div svg {display: block; width: 44px; position: absolute; right: 24px; top: 24px; fill: none; stroke: url('#coldhot'); stroke-width: 1;} .contentgrid > div img {display: block; width: 44px; position: absolute; right: 24px; top: 24px;} .contentgrid > div p {} .contentgrid > div p span { display: inline-block; padding: 0 0 8px 0; margin-bottom: 12px;} .contentgrid > div p span sup {opacity: 0.4;} .contentgrid > div p small {display: block; font-size: 0.8rem; } .contentgrid > div p small em {font-style: normal; } .xmplgrid {display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; padding: 16px 0 0 0;} .xmplgrid img { width: 100%; display: block; background-color: #fff; border-radius: 5px; } @media only screen and (min-width: 480px) { .headergrid {grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(3, 1fr);} .contentgrid {grid-template-columns: repeat(2, 1fr);} } @media only screen and (min-width: 640px) { .headergrid {grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(3, 1fr);} .contentgrid {grid-template-columns: repeat(3, 1fr);} } @media only screen and (min-width: 1080px) { .headergrid {grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(2, 1fr);} .contentgrid {grid-template-columns: repeat(4, 1fr);} .contentgrid > div {padding: 48px 16px 16px 16px;} } @media only screen and (min-width: 1440px) { .headergrid {grid-template-columns: repeat(5, 1fr); grid-template-rows: repeat(2, 1fr);} .headergrid > div:first-child {grid-column: 1 / 3; aspect-ratio: 2/1;} .contentgrid {grid-template-columns: repeat(5, 1fr);} .contentgrid > div:first-child {grid-column: 1 / 3;} }

SVG Lines

A set of svg clips for your favorite editor, enabling you to play with Scalable Vector Graphics

Structure Shapes Styling Transform Advanced Animate Examples

Content

89 clips40 elements, 42 attributes, 7 examples, organized in 7 folders.

Structure 16 clipsSvg header for file or inline html, structural elements.

Shapes 12 clipsPrimitives shapes, text, images.

Styling 12 clipsColoring, stroking, dashing, dotting.

Transform 5 clipsTranslation, rotation, scale, skew.

Advanced 23 clipsDeeper styling with gradient, pattern, mask.

Animate 14 clipsAnimate attribute, transformation, or motion.

Examples 7 clipsSamples ans starting lines.

Details

Folders
  Type Title Trigger Description
Structure
1.1</>svg file 1vg-file1Svg file with prepositioned elements (style + defs)
1.2</>svg file 2vg-file2Svg file with required attributes
1.3</>svg file 3vg-file3Svg file with grid (inline use)
1.4</>svg 512x512vg-512
1.5</>svg 128x128vg-128
1.6</>svg 64x64vg-64
1.7</>svg 32x32vg-32
1.8</>svg 24x24vg-24
1.9</>viewvg-view
1.10</>defsvg-defs
1.11</>groupvg-grouGroup element with transform attribute
1.12</>symbolvg-symb
1.13</>use symbolvg-ussy
1.14</>use elementvg-usel
1.15</>descriptionvg-desc+ Accessibility
1.16</>titlevg-titl+ Accessibility
Shapes
2.1</>circlevg-circ
2.2</>ellipsevg-elli
2.3</>rectvg-rect
2.4</>round rectvg-recr
2.5</>polygonvg-poly
2.6</>linevg-line
2.7</>polylinevg-poli
2.8</>pathvg-path
2.9</>textvg-text
2.10</>text pathvg-txtp
2.11</>tspanvg-tspn
2.12</>imagevg-imag
Styling
3.1attrfillvg-fill
3.2attrfill-rulevg-filr
3.3attrfill-opacityvg-fopa
3.4attrstrokevg-strk
3.5attrstroke-widthvg-swid
3.6attrstroke-opacityvg-sopa
3.7attrstroke-linecapvg-slic
3.8attrstroke-linejoinvg-slij
3.9attrstroke-miterlimitvg-mitl
3.10attrstroke-dasharrayvg-sdar
3.11attrstroke-dashoffsetvg-sdof
3.12attrpathLengthvg-plng
Transform
4.1attrtranslatevg-tran
4.2attrrotatevg-trot
4.3attrscalevg-tsca
4.4attrskewXvg-tskx
4.5attrskewYvg-tsky
Advanced
5.1</>linear gradientvg-lingGradient
5.2</>radial gradientvg-radgGradient
5.3</>stopvg-stopGradient
5.4attrgradient unitsvg-guniGradient
5.5attrgradient transformvg-gtraGradient
5.6attrfill with gradientvg-fgraGradient
5.7attrstroke with gradientvg-sgraGradient
5.8</>patternvg-pattPattern
5.9attrpatternUnitsvg-puniPattern
5.10attrpatternContentUnitsvg-pconPattern
5.11attrpatternTransformvg-ptraPattern
5.12attrfill with patternvg-fpatPattern
5.13attrstroke with patternvg-spatPattern
5.14</>mask definitionvg-maskMask
5.15attrmask a shapevg-fmskMask
5.16</>clipvg-clipClip
5.17attrclip-path a shapevg-fcliClip
5.18attrclip-rulevg-crulClip
5.19attrclipPathUnitsvg-cpunClip
5.20</>markervg-markMarker
5.21attrmarker-startvg-msttMarker
5.22attrmarker-midvg-mmidMarker
5.23attrmarker-endvg-mendMarker
Animate
6.1</>animate attributevg-aatr
6.2</>animate transformvg-atra
6.3</>animate motionvg-amot
6.4</>motion pathvg-amop
6.5</>setvg-aset
6.6attrfrom / to - svg animvg-afto2 attributes for 2 stepped animation
6.7attrvalues - svg animvg-aval
6.8attrbegin - svg animvg-abeg
6.9attrkeyPoints - svg animvg-akpo
6.10attrkeyTimes - svg animvg-akti
6.11attrkeySplines - svg animvg-aksp
6.12attrcalcMode - svg animvg-acal
6.13attraccumulate - svg animvg-acum
6.14attradditive - svg animvg-adit
Examples
7.1svgexample 0 - Gridsvg-x0_
7.2svgexample 1 - Shapesvg-x1
7.3svgexample 2 - Pathsvg-x2
7.4svgexample 3 - Stylingvg-x3
7.5svgexample 4 - Advancedvg-x4
7.6svgexample 5 - Transformvg-x5
7.7svgexample 6 - Animatevg-x6

About

The search for svg in nova extensions yielded no results, so I organized my svg clips somewhat after learning about the possibility of making my own extensions.

The organization of the folders corresponds to the structure of the course I share with my students.

Future ?

→  Missing elements & attributes. 

→  Svg filters. 

→  Improving what's needed…


Changelog

Version 1.0

Initial release