зеркало из https://github.com/mozilla/betachannel.git
Working on Visual Design. Focusing on the install page for narrow layouts
This commit is contained in:
Родитель
c266adec41
Коммит
b871a52920
|
@ -27,8 +27,14 @@ exports.sources = {
|
|||
css: {
|
||||
'/css/style.min.css': [
|
||||
'/css/reset.css',
|
||||
'/css/common.css',
|
||||
'/css/main.css'
|
||||
],
|
||||
'/css/app_install.min.css': [
|
||||
'/css/reset.css',
|
||||
'/css/common.css',
|
||||
'/css/app_install.css'
|
||||
],
|
||||
'/css/home.css': [
|
||||
'/css/home.css'
|
||||
],
|
||||
|
|
|
@ -63,6 +63,8 @@ module.exports = function(config) {
|
|||
} else {
|
||||
ctx.versions = versions;
|
||||
}
|
||||
// Hide really long descriptions
|
||||
aVersion.shortDescription = aVersion.manifest.description.substring(0, 140);
|
||||
ctx.publicUrl = config.publicUrl;
|
||||
tinyUrl(config.publicUrl + '/app/v/' + aVersion.versionId + '/install/' + anApp.code, function(err, tUrl) {
|
||||
if (!err) ctx.tinyUrl = tUrl;
|
||||
|
|
|
@ -1,34 +1,87 @@
|
|||
{% extends "layout.html" %} {% block title %}BetaFox - {{app.name}}{% endblock %}
|
||||
|
||||
{% block template_name %}app_install{% endblock %}
|
||||
<!DOCTYPE html>
|
||||
<html class="is-standalone">
|
||||
|
||||
{% block content %}
|
||||
<h2>Install {{version.manifest.name}}</h2>
|
||||
<div id="needs-mozapps" class="hidden">
|
||||
<p><strong>Unable to install on this browser / device</strong>
|
||||
</p>
|
||||
<p>Try this on your FirefoxOS device.</p>
|
||||
</div>
|
||||
<img src="{{version.icon_url}}" />
|
||||
<div class="app-name">{{version.manifest.name}} <span class="version">version:{{version.version}}</span></div>
|
||||
<p class="app-name">{{version.manifest.description}}</p>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>BetaFox - {{app.name}}</title>
|
||||
<link rel="stylesheet" href="/fonts/Fira-master/fira.css">
|
||||
{{ cachify_css('/css/app_install.min.css') }} {% block page_css %}{% endblock %}
|
||||
</head>
|
||||
|
||||
<button data-package-manifest-url="{{version.manifest_url}}" disabled class="install">Install</button>
|
||||
<body class="{% block template_name %}{% endblock %}">
|
||||
<div id="wrap">
|
||||
<div class="nav header">
|
||||
<div class="logo">
|
||||
<h1><a href="/">BetaFox</a></h1>
|
||||
</div>
|
||||
</div><!-- .nav -->
|
||||
<div id="main-content">
|
||||
<p id="tagline">Install a pre-release <strong>testing</strong> version of:</p>
|
||||
<div id="app-name-icon" class="centered">
|
||||
<h2>{{version.manifest.name}}</h2>
|
||||
<img src="{{version.icon_url}}" />
|
||||
</div>
|
||||
<div id="container">
|
||||
<div class="label-field">
|
||||
<h3 class="label">Version</h3>
|
||||
<div class="app-version field"><span class="version">{{version.version}}</span></div>
|
||||
</div>
|
||||
|
||||
Download raw <a class="package-link" href="{{signedPackage}}">package.zip ({{signedPackageSize}})</a>
|
||||
<div id="needs-mozapps" class="hidden">
|
||||
<p><strong>Unable to install on this browser / device</strong></p>
|
||||
<p>Try this on your FirefoxOS device.</p>
|
||||
</div>
|
||||
|
||||
<button data-package-manifest-url="{{version.manifest_url}}" disabled class="install">Install</button>
|
||||
<h3>Description</h3>
|
||||
<p class="app-description">{{version.shortDescription}}</p>
|
||||
|
||||
{% endblock %}
|
||||
Download raw <a class="package-link" href="{{signedPackage}}">package.zip </a>({{signedPackageSize}})
|
||||
</div><!-- #container -->
|
||||
|
||||
<div id="sidebar">
|
||||
<h3>Share this Page</h3>
|
||||
<p>Need to load this install page on another device? You can use the tiny url:</p>
|
||||
<div><a href="{{tinyUrl}}" class="tinyurl">{{tinyUrl}}</a></div>
|
||||
<p>Or use a QR Code scanner:</p>
|
||||
<div class="qrcode" data-qrcode-url="{{ publicUrl }}/app/v/{{version.versionId | string | urlencode}}/install/{{ app.code | urlencode }}"></div>
|
||||
|
||||
|
||||
<h3>Other Versions</h3>
|
||||
<p>In additon to version {{version.version}}, the following versions are available:</p>
|
||||
<ol class="versions">
|
||||
{% for ver in versions %}
|
||||
<li><a href="/app/v/{{ ver[0] | string | urlencode }}/install/{{ app.code | urlencode }}">Version {{ ver[1] }}</a></li>
|
||||
{% endfor %}
|
||||
</ol>
|
||||
</div><!-- #sidebar -->
|
||||
</div><!-- #main-content -->
|
||||
<div class="nav footer">
|
||||
<ul class="links">
|
||||
<li><a href="/help">Help</a>
|
||||
</li>
|
||||
<li>
|
||||
<div class="auth">
|
||||
<a class="login persona" href="">Log in</a>
|
||||
<div class="greeting persona">Hello, <span>{% if isAuthenticated %}{{email}}{% endif %}</span>
|
||||
</div>
|
||||
<a class="logout persona" href="">Sign Out</a>
|
||||
<input type="hidden" id="csrf_token" value="{{ csrf }}" />
|
||||
</div><!-- .auth -->
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div><!-- #wrap -->
|
||||
|
||||
<!-- TODO Lazy load Persona on this page -->
|
||||
<!-- script src="https://login.persona.org/include.js"></script -->
|
||||
{{ cachify_js('/js/betafox.min.js') }} {% block page_js %}{% endblock %}
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
{% block sidebar %}
|
||||
<h3>Share this Page</h3>
|
||||
<div class="qrcode" data-qrcode-url="{{ publicUrl }}/app/v/{{version.versionId | string | urlencode}}/install/{{ app.code | urlencode }}"></div>
|
||||
<a href="{{tinyUrl | urlencode }}" class="tinyurl">{{tinyUrl}}</a>
|
||||
|
||||
<h3>Other Versions</h3>
|
||||
<ol class="versions">
|
||||
{% for ver in versions %}
|
||||
<li><a href="/app/v/{{ ver[0] | string | urlencode }}/install/{{ app.code | urlencode }}">Version {{ ver[1] }}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ol>
|
||||
{% endblock %}
|
||||
|
|
|
@ -29,7 +29,9 @@ Make sure you can see your device. One the command line, try
|
|||
|
||||
<code>adb devices</code>
|
||||
|
||||
Note your device's name. We'll assume `full_unagi` in this example.
|
||||
<strong>Note your device's name</strong>. We'll assume `full_unagi` in this example.
|
||||
|
||||
<p>Your device might be named 94f7ce22device or flame or something else... be sure to double check! `full_unagi` is only an example.</p>
|
||||
|
||||
<p>If everything worked... Try the following:</p>
|
||||
<code>./provision-betafox.sh full_unagi {{ publicHostname }}</code>
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
/* app_install.css */
|
||||
|
||||
#wrap {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.header, #main-content, .footer {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
#main-content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
#tagline, #app-name-icon, #container, #sidebar {
|
||||
|
||||
}
|
||||
|
||||
#container {
|
||||
margin-top: 25px;
|
||||
padding-bottom: 25px;
|
||||
border-bottom: solid 25px #F1F1F1;
|
||||
}
|
||||
|
||||
#app-name-icon {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
|
||||
#sidebar {
|
||||
padding-top: 25px;
|
||||
padding-bottom: 25px;
|
||||
}
|
||||
|
||||
h3 {
|
||||
|
||||
}
|
||||
|
||||
.version { line-height: 2em; }
|
||||
|
||||
button.install {
|
||||
color: #FFF;
|
||||
background-color: #42cafe;
|
||||
border-radius: 5px;
|
||||
}
|
||||
button.install:hover {
|
||||
color: #FFF;
|
||||
background-color: #67e0fd;
|
||||
}
|
||||
button.install:active {
|
||||
color: #CBCBCB;
|
||||
background-color: #559dbd;
|
||||
}
|
||||
|
||||
.tinyurl { font-family: monospace; font-size: 1.25em; font-weight: 600; }
|
|
@ -0,0 +1,68 @@
|
|||
/* common.css */
|
||||
|
||||
body {
|
||||
|
||||
|
||||
font-family: 'Fira Sans', sans-serif;
|
||||
font-weight: 300
|
||||
font-size: 15px;
|
||||
line-height: 22.5px;
|
||||
|
||||
color: #797979;
|
||||
}
|
||||
|
||||
.label-field {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.label, .field {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
button {
|
||||
font-size: 1.25em;
|
||||
line-height: 2em;
|
||||
width: 100%;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 3em;
|
||||
line-height: 1em;
|
||||
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.logo h1 a {
|
||||
color: #1a1a1a;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
h2 {
|
||||
color: #1a1a1a;
|
||||
font-weight: 600;
|
||||
font-size: 1.25em;
|
||||
line-height: 2em;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.1em;
|
||||
line-height: 1.6em;
|
||||
font-weight: 500;
|
||||
|
||||
margin-top: 0.3em;
|
||||
}
|
||||
|
||||
|
||||
#wrap {
|
||||
margin-left: 20px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
strong {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none;
|
||||
}
|
|
@ -98,10 +98,6 @@ img {
|
|||
width: 100%;
|
||||
margin-left: 20px;
|
||||
}
|
||||
button {
|
||||
width: 90%;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
#sidebar { border-top: solid 1px black; margin-top: 10px; }
|
||||
|
||||
|
@ -146,9 +142,7 @@ ol.versions {
|
|||
list-style: none;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
.tinyurl {
|
||||
font-family: Courier, monospace;
|
||||
|
|
|
@ -19,7 +19,7 @@ time, mark, audio, video {
|
|||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
font-size: 100%;
|
||||
font-size: 15px;
|
||||
font: inherit;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
@ -28,9 +28,7 @@ article, aside, details, figcaption, figure,
|
|||
footer, header, hgroup, menu, nav, section {
|
||||
display: block;
|
||||
}
|
||||
body {
|
||||
line-height: 1.5em;
|
||||
}
|
||||
|
||||
ol, ul {
|
||||
list-style: none;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,99 @@
|
|||
Copyright (c) 2014, Mozilla Foundation https://mozilla.org/
|
||||
with Reserved Font Name Fira Sans.
|
||||
|
||||
Copyright (c) 2014, Mozilla Foundation https://mozilla.org/
|
||||
with Reserved Font Name Fira Mono.
|
||||
|
||||
Copyright (c) 2014, Telefonica S.A.
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
|
@ -0,0 +1 @@
|
|||
See http://www.carrois.com/fira-3-1/ for more details.
|
|
@ -0,0 +1,221 @@
|
|||
@font-face{
|
||||
font-family: 'Fira Sans';
|
||||
src: url('eot/FiraSans-Hair.eot');
|
||||
src: local('Fira Sans Hair'),
|
||||
url('eot/FiraSans-Hair.eot') format('embedded-opentype'),
|
||||
url('woff/FiraSans-Hair.woff') format('woff'),
|
||||
url('ttf/FiraSans-Hair.ttf') format('truetype');
|
||||
font-weight: 100;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face{
|
||||
font-family: 'Fira Sans';
|
||||
src: url('eot/FiraSans-HairItalic.eot');
|
||||
src: local('Fira Sans Hair Italic'),
|
||||
url('eot/FiraSans-HairItalic.eot') format('embedded-opentype'),
|
||||
url('woff/FiraSans-HairItalic.woff') format('woff'),
|
||||
url('ttf/FiraSans-HairItalic.ttf') format('truetype');
|
||||
font-weight: 100;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
@font-face{
|
||||
font-family: 'Fira Sans';
|
||||
src: url('eot/FiraSans-UltraLight.eot');
|
||||
src: local('Fira Sans UltraLight'),
|
||||
url('eot/FiraSans-UltraLight.eot') format('embedded-opentype'),
|
||||
url('woff/FiraSans-UltraLight.woff') format('woff'),
|
||||
url('ttf/FiraSans-UltraLight.ttf') format('truetype');
|
||||
font-weight: 200;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face{
|
||||
font-family: 'Fira Sans';
|
||||
src: url('eot/FiraSans-UltraLightItalic.eot');
|
||||
src: local('Fira Sans UltraLight Italic'),
|
||||
url('eot/FiraSans-UltraLightItalic.eot') format('embedded-opentype'),
|
||||
url('woff/FiraSans-UltraLightItalic.woff') format('woff'),
|
||||
url('ttf/FiraSans-UltraLightItalic.ttf') format('truetype');
|
||||
font-weight: 200;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
@font-face{
|
||||
font-family: 'Fira Sans';
|
||||
src: url('eot/FiraSans-Light.eot');
|
||||
src: local('Fira Sans Light'),
|
||||
url('eot/FiraSans-Light.eot') format('embedded-opentype'),
|
||||
url('woff/FiraSans-Light.woff') format('woff'),
|
||||
url('ttf/FiraSans-Light.ttf') format('truetype');
|
||||
font-weight: 300;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face{
|
||||
font-family: 'Fira Sans';
|
||||
src: url('eot/FiraSans-LightItalic.eot');
|
||||
src: local('Fira Sans Light Italic'),
|
||||
url('eot/FiraSans-LightItalic.eot') format('embedded-opentype'),
|
||||
url('woff/FiraSans-LightItalic.woff') format('woff'),
|
||||
url('ttf/FiraSans-LightItalic.ttf') format('truetype');
|
||||
font-weight: 300;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
@font-face{
|
||||
font-family: 'Fira Sans';
|
||||
src: url('eot/FiraSans-Regular.eot');
|
||||
src: local('Fira Sans Regular'),
|
||||
url('eot/FiraSans-Regular.eot') format('embedded-opentype'),
|
||||
url('woff/FiraSans-Regular.woff') format('woff'),
|
||||
url('ttf/FiraSans-Regular.ttf') format('truetype');
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face{
|
||||
font-family: 'Fira Sans';
|
||||
src: url('eot/FiraSans-RegularItalic.eot');
|
||||
src: local('Fira Sans Regular Italic'),
|
||||
url('eot/FiraSans-RegularItalic.eot') format('embedded-opentype'),
|
||||
url('woff/FiraSans-RegularItalic.woff') format('woff'),
|
||||
url('ttf/FiraSans-RegularItalic.ttf') format('truetype');
|
||||
font-weight: 400;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
@font-face{
|
||||
font-family: 'Fira Sans';
|
||||
src: url('eot/FiraSans-Medium.eot');
|
||||
src: local('Fira Sans Medium'),
|
||||
url('eot/FiraSans-Medium.eot') format('embedded-opentype'),
|
||||
url('woff/FiraSans-Medium.woff') format('woff'),
|
||||
url('ttf/FiraSans-Medium.ttf') format('truetype');
|
||||
font-weight: 500;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face{
|
||||
font-family: 'Fira Sans';
|
||||
src: url('eot/FiraSans-MediumItalic.eot');
|
||||
src: local('Fira Sans Medium Italic'),
|
||||
url('eot/FiraSans-MediumItalic.eot') format('embedded-opentype'),
|
||||
url('woff/FiraSans-MediumItalic.woff') format('woff'),
|
||||
url('ttf/FiraSans-MediumItalic.ttf') format('truetype');
|
||||
font-weight: 500;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
@font-face{
|
||||
font-family: 'Fira Sans';
|
||||
src: url('eot/FiraSans-SemiBold.eot');
|
||||
src: local('Fira Sans SemiBold'),
|
||||
url('eot/FiraSans-SemiBold.eot') format('embedded-opentype'),
|
||||
url('woff/FiraSans-SemiBold.woff') format('woff'),
|
||||
url('ttf/FiraSans-SemiBold.ttf') format('truetype');
|
||||
font-weight: 600;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face{
|
||||
font-family: 'Fira Sans';
|
||||
src: url('eot/FiraSans-SemiBoldItalic.eot');
|
||||
src: local('Fira Sans SemiBold Italic'),
|
||||
url('eot/FiraSans-SemiBoldItalic.eot') format('embedded-opentype'),
|
||||
url('woff/FiraSans-SemiBoldItalic.woff') format('woff'),
|
||||
url('ttf/FiraSans-SemiBoldItalic.ttf') format('truetype');
|
||||
font-weight: 600;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
@font-face{
|
||||
font-family: 'Fira Sans';
|
||||
src: url('eot/FiraSans-Bold.eot');
|
||||
src: local('Fira Sans Bold'),
|
||||
url('eot/FiraSans-Bold.eot') format('embedded-opentype'),
|
||||
url('woff/FiraSans-Bold.woff') format('woff'),
|
||||
url('ttf/FiraSans-Bold.ttf') format('truetype');
|
||||
font-weight: 700;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face{
|
||||
font-family: 'Fira Sans';
|
||||
src: url('eot/FiraSans-BoldItalic.eot');
|
||||
src: local('Fira Sans Bold Italic'),
|
||||
url('eot/FiraSans-BoldItalic.eot') format('embedded-opentype'),
|
||||
url('woff/FiraSans-BoldItalic.woff') format('woff'),
|
||||
url('ttf/FiraSans-BoldItalic.ttf') format('truetype');
|
||||
font-weight: 700;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
@font-face{
|
||||
font-family: 'Fira Sans';
|
||||
src: url('eot/FiraSans-ExtraBold.eot');
|
||||
src: local('Fira Sans ExtraBold'),
|
||||
url('eot/FiraSans-ExtraBold.eot') format('embedded-opentype'),
|
||||
url('woff/FiraSans-ExtraBold.woff') format('woff'),
|
||||
url('ttf/FiraSans-ExtraBold.ttf') format('truetype');
|
||||
font-weight: 800;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face{
|
||||
font-family: 'Fira Sans';
|
||||
src: url('eot/FiraSans-ExtraBoldItalic.eot');
|
||||
src: local('Fira Sans ExtraBold Italic'),
|
||||
url('eot/FiraSans-ExtraBoldItalic.eot') format('embedded-opentype'),
|
||||
url('woff/FiraSans-ExtraBoldItalic.woff') format('woff'),
|
||||
url('ttf/FiraSans-ExtraBoldItalic.ttf') format('truetype');
|
||||
font-weight: 800;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
@font-face{
|
||||
font-family: 'Fira Sans';
|
||||
src: url('eot/FiraSans-Heavy.eot');
|
||||
src: local('Fira Sans Heavy'),
|
||||
url('eot/FiraSans-Heavy.eot') format('embedded-opentype'),
|
||||
url('woff/FiraSans-Heavy.woff') format('woff'),
|
||||
url('ttf/FiraSans-Heavy.ttf') format('truetype');
|
||||
font-weight: 900;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face{
|
||||
font-family: 'Fira Sans';
|
||||
src: url('eot/FiraSans-HeavyItalic.eot');
|
||||
src: local('Fira Sans Heavy Italic'),
|
||||
url('eot/FiraSans-HeavyItalic.eot') format('embedded-opentype'),
|
||||
url('woff/FiraSans-HeavyItalic.woff') format('woff'),
|
||||
url('ttf/FiraSans-HeavyItalic.ttf') format('truetype');
|
||||
font-weight: 900;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
|
||||
@font-face{
|
||||
font-family: 'Fira Mono';
|
||||
src: url('eot/FiraMono-Regular.eot');
|
||||
src: local('Fira Mono'),
|
||||
url('eot/FiraMono-Regular.eot') format('embedded-opentype'),
|
||||
url('woff/FiraMono-Regular.woff') format('woff'),
|
||||
url('ttf/FiraMono-Regular.ttf') format('truetype');
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face{
|
||||
font-family: 'Fira Mono';
|
||||
src: url('eot/FiraMono-Bold.eot');
|
||||
src: local('Fira Mono Bold'),
|
||||
url('eot/FiraMono-Bold.eot') format('embedded-opentype'),
|
||||
url('woff/FiraMono-Bold.woff') format('woff'),
|
||||
url('ttf/FiraMono-Bold.ttf') format('truetype');
|
||||
font-weight: 600;
|
||||
font-style: normal;
|
||||
}
|
||||
|
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Загрузка…
Ссылка в новой задаче