diff options
| -rw-r--r-- | _icons/arrow-down.svg | 7 | ||||
| -rw-r--r-- | _icons/arrow-left.svg | 5 | ||||
| -rw-r--r-- | _icons/arrow-right.svg | 5 | ||||
| -rw-r--r-- | _icons/arrow-up.svg | 7 | ||||
| -rw-r--r-- | _includes/icon.html | 2 | ||||
| -rw-r--r-- | assets/bg.svg | 34 | ||||
| -rw-r--r-- | assets/style.scss | 188 | ||||
| -rw-r--r-- | index.html | 60 | 
8 files changed, 285 insertions, 23 deletions
diff --git a/_icons/arrow-down.svg b/_icons/arrow-down.svg new file mode 100644 index 00000000..a202dfff --- /dev/null +++ b/_icons/arrow-down.svg @@ -0,0 +1,7 @@ +--- +--- +<svg> +  <line x1="12" y1="5" x2="12" y2="19" /> +  <line x1="19" y1="12" x2="12" y2="19" /> +  <line x1="5" y1="12" x2="12" y2="19" /> +</svg> diff --git a/_icons/arrow-left.svg b/_icons/arrow-left.svg index 59e7ba17..3d833119 100644 --- a/_icons/arrow-left.svg +++ b/_icons/arrow-left.svg @@ -1,6 +1,7 @@  ---  ---  <svg> -  <line x1="19" y1="12" x2="5" y2="12" /> -  <polyline points="12 19 5 12 12 5" /> +  <line x1="5" y1="12" x2="19" y2="12" /> +  <line x1="5" y1="12" x2="12" y2="19" /> +  <line x1="5" y1="12" x2="12" y2="5" />  </svg> diff --git a/_icons/arrow-right.svg b/_icons/arrow-right.svg index 59e7ba17..5869438e 100644 --- a/_icons/arrow-right.svg +++ b/_icons/arrow-right.svg @@ -1,6 +1,7 @@  ---  ---  <svg> -  <line x1="19" y1="12" x2="5" y2="12" /> -  <polyline points="12 19 5 12 12 5" /> +  <line x1="5" y1="12" x2="19" y2="12" /> +  <line x1="12" y1="19" x2="19" y2="12" /> +  <line x1="12" y1="5" x2="19" y2="12" />  </svg> diff --git a/_icons/arrow-up.svg b/_icons/arrow-up.svg new file mode 100644 index 00000000..980a5064 --- /dev/null +++ b/_icons/arrow-up.svg @@ -0,0 +1,7 @@ +--- +--- +<svg> +<line x1="12" y1="5" x2="12" y2="19" /> +<line x1="19" y1="12" x2="12" y2="5" /> +<line x1="5" y1="12" x2="12" y2="5" /> +</svg> diff --git a/_includes/icon.html b/_includes/icon.html index fe6b02e4..d61658ed 100644 --- a/_includes/icon.html +++ b/_includes/icon.html @@ -1,6 +1,6 @@  {% assign name = include.name %}  {% assign icon = site.icons | where: "slug", name | first %} -{% assign content = icon.content | replace: '<svg', '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"' %} +{% assign content = icon.content | replace: '<svg', '<svg xmlns="http://www.w3.org/2000/svg" class="icon" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"' %}  {{ content }} diff --git a/assets/bg.svg b/assets/bg.svg index 9e39c47c..389aca8a 100644 --- a/assets/bg.svg +++ b/assets/bg.svg @@ -1,18 +1,30 @@  ---  --- -<svg width="48" height="48" viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg"> -  <g fill="none" fill-rule="evenodd" stroke="#206bc4" stroke-width=".05" opacity="1"> -    <rect x="8" y="2" width="32" height="44" rx="3"></rect> -    <rect x="5" y="5" width="38" height="38" rx="3"></rect> -    <rect x="2" y="8" width="44" height="32" rx="3"></rect> -    <circle cx="24" cy="24" r="10"></circle> -    <circle cx="24" cy="24" r="22"></circle> -    <path d="M0 48L48 0M0 0l48 48M24 48V0M17 0v48M31 0v48M48 24H0M0 31h48M0 17h48"></path> +<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> +  <g fill="none" fill-rule="evenodd" stroke="#206bc4" stroke-width=".025" opacity="1"> +    <rect x="4" y="1" width="16" height="22" rx="1.5"></rect> +    <rect x="2" y="2" width="20" height="20" rx="1.5"></rect> +    <rect x="1" y="4" width="22" height="16" rx="1.5"></rect> +    <circle cx="12" cy="12" r="5"></circle> +    <circle cx="12" cy="12" r="11"></circle> +    <line x1="0" y1="0" x2="24" y2="24"></line> +    <line x1="24" y1="0" x2="0" y2="24"></line> +    <line x1="0" y1="8.5" x2="24" y2="8.5"></line> +    <line x1="0" y1="15.5" x2="24" y2="15.5"></line> +    <line x1="8.5" y1="0" x2="8.5" y2="24"></line> +    <line x1="15.5" y1="0" x2="15.5" y2="24"></line>    </g> -  <g stroke="#666" stroke-width=".01" opacity="1"> +  <g font-family="system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji">      {% for i in (1..24) %} -    <line x1="0" y1="{{ i | times: 2 }}" x2="48" y2="{{ i | times: 2 }}"></line> -    <line x1="{{ i | times: 2 }}" y1="0" x2="{{ i | times: 2 }}" y2="48"></line> +    <g fill="#ccc" font-size=".3"> +      <text x="0" y="{{ i | plus: 0.35 }}" >{{ i }}</text> +      <text x="{{ i | plus: 0.1 }}" y=".25" >{{ i }}</text> +    </g> +    <g stroke="#666" stroke-width=".01"> +      <line x1="0" y1="{{ i }}" x2="24" y2="{{ i }}"></line> +      <line x1="{{ i }}" y1="0" x2="{{ i }}" y2="24"></line> +    </g> +      {% endfor %}    </g>  </svg> diff --git a/assets/style.scss b/assets/style.scss index 61fed5fe..5c331aa1 100644 --- a/assets/style.scss +++ b/assets/style.scss @@ -1,5 +1,16 @@  ---  --- + +$breakpoint: (min-width: 50rem); +$primary: #206bc4; +$border: #eeeeee; +$muted: #aaaaaa; +$btn-form-height: 2rem; + +* { +  box-sizing: border-box; +} +  html {    font-size: 16px;    font-family: system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji; @@ -7,21 +18,54 @@ html {  body {    background: #fafbfc; -  font-size: 1rem; +  font-size: .9375rem;    -webkit-font-smoothing: antialiased;    -moz-osx-font-smoothing: grayscale;  } +a { +  color: $primary; +  text-decoration: none; + +  &:hover { +    text-decoration: underline; +  } +} +  .container { -  max-width: 50rem; +  max-width: 60rem;    margin: 0 auto;    padding: 1rem  } +.row { +  display: flex; +  flex-direction: column; + +  @media #{$breakpoint} { +    flex-direction: row; +  } +} + +.col { +  flex: 1; +} + +.col-aside { +  width: 15rem; +  margin-top: 2rem; + +  @media #{$breakpoint} { +    margin-top: 0; +    margin-left: 2rem; +    flex-direction: row; +  } +} +  .box {    padding: 2rem;    background: #ffff; -  box-shadow: 0 0 0 1px rgba(0,0,0,.05), 0 1px 1px rgba(0,0,0,.1); +  box-shadow: 0 0 0 1px rgba(0, 0, 0, .05), 0 1px 1px rgba(0, 0, 0, .1);  }  .icon-preview-wrap { @@ -73,3 +117,141 @@ body {    }  } +.mb { +  margin-bottom: 2rem; +} + + +/* +Components + */ +.btn { +  display: inline-flex; +  color: #ffffff; +  background: $primary; +  border: 0; +  border-radius: 3px; +  font-size: inherit; +  line-height: 1; +  justify-content: center; +  align-items: center; +  min-height: $btn-form-height; +  min-width: $btn-form-height; +  padding: 0 .75rem; + + +  .icon { +    width: 1rem; +    height: 1rem; +    stroke-width: 2; +    margin: 0 .5rem 0 -.25rem; +  } +} + +.btn-icon { +  padding: 0; +  justify-content: center; + +  .icon { +    margin: 0; +  } +} + +.btn-link { +  background: transparent; +  color: $primary; +} + +.input { +  border: 1px solid $border; +  border-radius: 3px; +  height: $btn-form-height; +  display: block; +  font-size: inherit; +  font-family: inherit; +  padding: 0 .5rem; +  width: 100%; + +  &:focus { +    outline: 0; +    box-shadow: 0 0 0 3px rgba($primary, .1); +    border-color: rgba($primary, .4); +  } +} + +.icon { +  width: 1em; +  height: 1em; +  vertical-align: -.15em; +} + +.input-icon { +  position: relative; + +  .input { +    padding-right: 2rem; +  } + +  .icon { +    color: $muted; +    width: 1.25rem; +    height: 1.25rem; +    stroke-width: 1.5; +    position: absolute; +    top: ($btn-form-height - 1.25rem) / 2; +    right: ($btn-form-height - 1.25rem) / 2; +  } + +  &.icon-left { +    .icon { +      left: ($btn-form-height - 1.25rem) / 2; +      right: auto; +    } + +    .input { +      padding-left: 2rem; +      padding-right: 0; +    } +  } +} + +.avatar { +  background: rgba($muted, .1); +  color: $muted; +  display: inline-flex; +  width: 2.5rem; +  height: 2.5rem; +  align-items: center; +  justify-content: center; +  border-radius: 50%; +  vertical-align: bottom; + +  .icon { +    height: 50%; +    width: 50%; +  } +} + +.avatar-sm { +  width: 1.5rem; +  height: 1.5rem; +} + +.tabs { +  display: flex; + +  .tab { +    flex: 1; +    text-align: center; +    border-bottom: 1px solid $border; +    padding: .25rem 0; +    color: inherit; +    text-decoration: none; +    cursor: pointer; + +    &.active { +      color: $primary; +      border-bottom-color: $primary; +    } +  } +} @@ -14,14 +14,66 @@  <body>  <div class="container">  	<div class="box"> -		<div class="icon-preview-wrap"> -			<div class="icon-preview"> -				{% include icon.html name="arrow-left" %} + +		{% assign last-icon = site.icons | sort: date | reverse | first %} +		{% capture last-icon %} +		{% include icon.html name=last-icon.slug %} +		{% endcapture %} + +		<div class="row"> +			<div class="col"> + +				<div class="icon-preview-wrap"> +					<div class="icon-preview"> +						{{ last-icon }} +					</div> +				</div> +			</div> +			<div class="col-aside"> + +				<div class="mb"> +					<button class="btn"> +						{{ last-icon }} Button +					</button> +					<button class="btn btn-icon"> +						{{ last-icon }} +					</button> +					<button class="btn btn-link"> +						{{ last-icon }} Button +					</button> +				</div> + +				<div class="input-icon mb"> +					<input type="text" class="input" value="Input value"> +					{{ last-icon }} +				</div> + +				<div class="input-icon icon-left mb"> +					{{ last-icon }} +					<input type="text" class="input" placeholder="Input placeholder"> +				</div> + +				<div class="mb"> +					<div class="avatar">{{ last-icon }}</div> +					<div class="avatar avatar-sm">{{ last-icon }}</div> +				</div> + +				<div class="tabs mb"> +					<a class="tab active">{{ last-icon }} Tab 1</a> +					<a class="tab">Tab 2</a> +					<a class="tab">Tab 3</a> +				</div> + +				<div class="mb"> +					<a href="#">{{ last-icon }} Link</a> +				</div>  			</div>  		</div> + +  		<div class="icons-list">  			{% for icon in site.icons %} -			<div class="icon"> +			<div class="icon" title="{{ icon.slug }}">  				{% assign name = icon.slug %}  				{% include icon.html name=name %}  			</div>  | 
