Compare commits
69 Commits
php2python
...
master
Author | SHA1 | Date |
---|---|---|
Holger Frey | c6bdf65223 | 5 years ago |
Holger Frey | ab499958f0 | 7 years ago |
Holger Frey | 7045164de6 | 7 years ago |
Holger Frey | 9359620a71 | 7 years ago |
Holger Frey | c361f0f71d | 7 years ago |
Holger Frey | 511e5d0c25 | 7 years ago |
Holger Frey | e53788559f | 7 years ago |
Holger Frey | ab07076c95 | 7 years ago |
Holger Frey | 96c1717eac | 7 years ago |
Holger Frey | 62af585175 | 7 years ago |
Holger Frey | 9bc85121ab | 7 years ago |
Holger Frey | c5180a6c57 | 7 years ago |
Holger Frey | 57d0b4b373 | 7 years ago |
Holger Frey | 57c6b175cd | 7 years ago |
Holger Frey | e64001ce87 | 7 years ago |
Holger Frey | d881ea2a07 | 7 years ago |
Holger Frey | b23c214df1 | 7 years ago |
Holger Frey | eb32a8a474 | 7 years ago |
Holger Frey | e974070585 | 7 years ago |
Holger Frey | 8d4df465c2 | 7 years ago |
Holger Frey | b8a0cd008b | 7 years ago |
Holger Frey | 40401472be | 7 years ago |
Holger Frey | 0a752eacd9 | 7 years ago |
Holger Frey | a66bf5ac12 | 7 years ago |
Holger Frey | 16516be8ef | 7 years ago |
Holger Frey | 353c6a8f12 | 7 years ago |
Holger Frey | d8dd9f629b | 7 years ago |
Holger Frey | ff7aca94ce | 7 years ago |
Holger Frey | c127fe6816 | 7 years ago |
Holger Frey | 8514aab1c0 | 7 years ago |
Holger Frey | ee172bc7f5 | 7 years ago |
Holger Frey | 85a99b1d6a | 7 years ago |
Holger Frey | 9def414339 | 7 years ago |
Holger Frey | 7dd317226e | 7 years ago |
Holger Frey | f2d33f50ba | 7 years ago |
Holger Frey | 21e33b3a3d | 7 years ago |
Holger Frey | eaa229256a | 7 years ago |
Holger Frey | 290b864d17 | 7 years ago |
Holger Frey | 9ee42880e9 | 7 years ago |
Holger Frey | f535ece7ca | 7 years ago |
Holger Frey | 7158d10549 | 7 years ago |
Holger Frey | aec2641290 | 7 years ago |
Holger Frey | 900f5a3b30 | 7 years ago |
Holger Frey | 52a594b3be | 7 years ago |
Holger Frey | 15ff848305 | 7 years ago |
Holger Frey | 9ad8058597 | 7 years ago |
Holger Frey | 5fbc2dd4f0 | 7 years ago |
Holger Frey | 301195a053 | 7 years ago |
Holger Frey | 686873c39c | 7 years ago |
Holger Frey | 54dd4a0492 | 7 years ago |
Holger Frey | 9e6b0a43d4 | 7 years ago |
Holger Frey | 4cef970410 | 7 years ago |
Holger Frey | fe02f10cd8 | 7 years ago |
Holger Frey | 8d9e320f0a | 7 years ago |
Holger Frey | 43fbb56177 | 7 years ago |
Holger Frey | 052cb29acf | 7 years ago |
Holger Frey | 5c537e57a0 | 7 years ago |
Holger Frey | e49f7890a2 | 7 years ago |
Holger Frey | d50d977dc3 | 7 years ago |
Holger Frey | ac9b484229 | 7 years ago |
Holger Frey | 393698b365 | 7 years ago |
Holger Frey | 000d5582dd | 7 years ago |
Holger Frey | fdf0208c89 | 7 years ago |
Holger Frey | b1870658a9 | 7 years ago |
Holger Frey | 03470644dd | 7 years ago |
Holger Frey | 4b41dad890 | 7 years ago |
Holger Frey | 83e697bc0b | 7 years ago |
Holger Frey | edfc33d9ad | 7 years ago |
Holger Frey | 41c156f56a | 7 years ago |
@ -1,10 +1,68 @@
@@ -1,10 +1,68 @@
|
||||
=========================== |
||||
Ordr2 - CPI Ordering System |
||||
=========================== |
||||
OLD: Ordr2 - CPI Ordering System |
||||
================================ |
||||
|
||||
CAUTION: |
||||
THIS REPO EXISTS FOR HISTORIC REASONS |
||||
THE PROJECT WAS REPLACED BY Ordr3 |
||||
|
||||
Features |
||||
-------- |
||||
|
||||
* TODO |
||||
In our chair at the University of Freiburg there are about forty people working |
||||
in the lab but only four of them are accredited for the SAP ordering system |
||||
used by the university - the rest has to order through them. This leads to |
||||
a quite large amount of mails, post-its and calls per purchaser. To give this |
||||
some better structure, our small ordering system was developed. It is actually |
||||
a 'would-you-please-order-for-me-system' and disconnected from the upstream |
||||
system. |
||||
|
||||
This is a complete rewrite of the CPI `ordering system`_ originally written in |
||||
PHP. |
||||
|
||||
|
||||
Goals |
||||
----- |
||||
* more information on orders: |
||||
* record the status change in order in a log |
||||
* add a new status "hold" if there are questions |
||||
* simpler reordering of already placed orders |
||||
* better tools for consumables (templates for new orders): |
||||
* propose consumables on placed orders |
||||
* check unused or outdated consumables |
||||
* make categories editable |
||||
* revamped user management: |
||||
* validate email address on registration |
||||
* forgot password system |
||||
* make password hashing future proof |
||||
* move away from PHP as a programming language (done, branch php2pyhton) |
||||
* update the front end tools to current versions |
||||
|
||||
|
||||
Notes on technologies used |
||||
--------------------------- |
||||
|
||||
The project uses `Pyramid`_ as a web framework, especially the `traversal`_ |
||||
style routing instead of the more widely spread url dispatch method. This |
||||
decision was made because: |
||||
|
||||
* the starter of this project likes this kind of routing |
||||
* it eliminates the need of defining routes separately |
||||
* `row level security`_ is easy to implement since traversal works with |
||||
resources from the start. |
||||
|
||||
The new system should have automated unit- and integration tests for all |
||||
self written code, aming at 100% coverage although this might never be |
||||
reached. |
||||
|
||||
To run a test use the ``make coverage`` command or if you'd like to test |
||||
without a coverage report use ``make test`` |
||||
|
||||
Also the code should be documented well enough to support the current and |
||||
new developers. Good Documentation is hard, so please be forgiving in this |
||||
regard. A set of documents can be compiled and viewed with the ``make docs`` |
||||
command. |
||||
|
||||
|
||||
|
||||
.. _ordering system: https://ordr.cpi.imtek.uni-freiburg.de |
||||
.. _Pyramid: https://trypyramid.com |
||||
.. _traversal: https://docs.pylonsproject.org/projects/pyramid/en/latest/narr/muchadoabouttraversal.html |
||||
.. _row level security: https://docs.pylonsproject.org/projects/pyramid/en/latest/narr/security.html |
||||
|
@ -0,0 +1,86 @@
@@ -0,0 +1,86 @@
|
||||
''' custom events and event subsribers ''' |
||||
|
||||
from pyramid.events import subscriber |
||||
from pyramid.renderers import render |
||||
from pyramid_mailer import get_mailer |
||||
from pyramid_mailer.message import Message |
||||
|
||||
|
||||
# custom events |
||||
|
||||
class UserNotification(object): |
||||
''' base class for user notification emails |
||||
|
||||
:param request: |
||||
current request object |
||||
:type request: |
||||
`pyramid.request.Request` |
||||
:param account: |
||||
account to send the notification to |
||||
:type account: |
||||
:class:`ordr2.models.account.Users` |
||||
:param data: |
||||
additional data to pass to the mail template |
||||
''' |
||||
|
||||
#: subject of the notification |
||||
subject = None |
||||
|
||||
#: template to render |
||||
template = None |
||||
|
||||
def __init__(self, request, account, data=None, send_to=None): |
||||
self.request = request |
||||
self.account = account |
||||
self.data = data |
||||
self.send_to = send_to or account.email |
||||
|
||||
|
||||
class AccountActivation(UserNotification): |
||||
''' user notification for account activation ''' |
||||
subject = '[ordr] Your account was activated' |
||||
template = 'ordr2:templates/emails/activation.jinja2' |
||||
|
||||
|
||||
class ChangedEmail(UserNotification): |
||||
''' user notification for a changed email address ''' |
||||
subject = '[ordr] Please verify your email address' |
||||
template = 'ordr2:templates/emails/mail_change.jinja2' |
||||
|
||||
|
||||
class CompleteRegistration(UserNotification): |
||||
''' user notification for account activation ''' |
||||
subject = '[ordr] Please verify your email address' |
||||
template = 'ordr2:templates/emails/registration.jinja2' |
||||
|
||||
|
||||
class OrderStatusChange(UserNotification): |
||||
''' user notification for order status change ''' |
||||
subject = '[ordr] Order Status Change' |
||||
template = 'ordr2:templates/emails/order.jinja2' |
||||
|
||||
|
||||
class PasswordReset(UserNotification): |
||||
''' user notification for password reset link ''' |
||||
subject = '[ordr] Password Reset' |
||||
template = 'ordr2:templates/emails/password_reset.jinja2' |
||||
|
||||
|
||||
# subsribers for events |
||||
|
||||
@subscriber(UserNotification) |
||||
def notify_user(event): |
||||
''' notify a user about an event ''' |
||||
body = render( |
||||
event.template, |
||||
{'user': event.account, 'data': event.data}, |
||||
event.request |
||||
) |
||||
message = Message( |
||||
subject=event.subject, |
||||
sender=event.request.registry.settings['mail.default_sender'], |
||||
recipients=[event.send_to], |
||||
html=body |
||||
) |
||||
mailer = get_mailer(event.request.registry) |
||||
mailer.send(message) |
@ -0,0 +1,234 @@
@@ -0,0 +1,234 @@
|
||||
''' User Account and Roles Models ''' |
||||
|
||||
import enum |
||||
import uuid |
||||
|
||||
from datetime import datetime, timedelta |
||||
from passlib.context import CryptContext |
||||
from sqlalchemy import ( |
||||
Column, |
||||
Date, |
||||
DateTime, |
||||
Enum, |
||||
ForeignKey, |
||||
Integer, |
||||
Text, |
||||
Unicode |
||||
) |
||||
from sqlalchemy.orm import relationship |
||||
|
||||
from .meta import Base, JsonEncoder |
||||
|
||||
|
||||
#: create a crypt context for password hashes |
||||
#: configured in :mod:`ordr2.security.includeme()` |
||||
#: this is not in :mod:`ordr2.security` to avoid circular imports |
||||
passlib_context = CryptContext() |
||||
|
||||
|
||||
# non-database models |
||||
|
||||
class Role(enum.Enum): |
||||
''' roles of user accounts ''' |
||||
|
||||
#: new user, email address was not validated |
||||
UNVALIDATED = 'unvalidated' |
||||
|
||||
#: new user, email address validated, not activated by admin |
||||
NEW = 'new' |
||||
|
||||
#: standard user of the system, can place and view orders |
||||
USER = 'user' |
||||
|
||||
#: privileged user of the system, can edit orders |
||||
PURCHASER = 'purchaser' |
||||
|
||||
#: privileged user, can edit orders, users and consumables |
||||
ADMIN = 'admin' |
||||
|
||||
#: a user that is no longer activated |
||||
INACTIVE = 'inactive' |
||||
|
||||
@property |
||||
def principal(self): |
||||
''' returns the principal identifier of the role ''' |
||||
return 'role:' + self.value.lower() |
||||
|
||||
def __str__(self): |
||||
''' string representation ''' |
||||
return self.value.capitalize() |
||||
|
||||
|
||||
class TokenSubject(enum.Enum): |
||||
''' Token Subjects for changing user accounts ''' |
||||
|
||||
#: validate email address of freshly registered user |
||||
USER_REGISTRATION = 'user_registration' |
||||
|
||||
#: validate email change of active user |
||||
CHANGE_EMAIL = 'change_email' |
||||
|
||||
#: reset a forgotten password |
||||
RESET_PASSWORD = 'reset_password' |
||||
|
||||
|
||||
# database driven models |
||||
|
||||
class User(Base): |
||||
''' A user of the application ''' |
||||
|
||||
__tablename__ = 'users' |
||||
|
||||
#: primary key |
||||
id = Column(Integer, primary_key=True) |
||||
#: unique user name |
||||
username = Column(Text, nullable=False, unique=True) |
||||
#: hashed password, see :mod:`ordr2.security` |
||||
password_hash = Column(Text, nullable=False) |
||||
#: role of the user, see :class:`ordr2.models.account.Role` |
||||
role = Column(Enum(Role), nullable=False) |
||||
|
||||
first_name = Column(Text, nullable=False) |
||||
last_name = Column(Text, nullable=False) |
||||
email = Column(Text, nullable=False, unique=True) |
||||
date_created = Column(Date, nullable=False, default=datetime.utcnow) |
||||
|
||||
#: tokens for new user registration, email change and forgotten passwords |
||||
tokens = relationship( |
||||
'Token', |
||||
back_populates='owner', |
||||
cascade="all, delete-orphan" |
||||
) |
||||
|
||||
@property |
||||
def principal(self): |
||||
''' returns the principal identifier for the user ''' |
||||
return 'user:{}'.format(self.id) |
||||
|
||||
@property |
||||
def role_principals(self): |
||||
''' returns the principal identifiers for the user's role ''' |
||||
principals = [self.role.principal] |
||||
if self.role is Role.PURCHASER: |
||||
# a purchaser is also a user |
||||
principals.append(Role.USER.principal) |
||||
elif self.role is Role.ADMIN: |
||||
# an admin is also a purchaser and a user |
||||
principals.append(Role.PURCHASER.principal) |
||||
principals.append(Role.USER.principal) |
||||
return principals |
||||
|
||||
@property |
||||
def is_active(self): |
||||
''' is true if the user has an active role ''' |
||||
return self.role in (Role.USER, Role.PURCHASER, Role.ADMIN) |
||||
|
||||
def set_password(self, password): |
||||
''' hashes a password using :mod:`ordr2.security.passlib_context` ''' |
||||
self.password_hash = passlib_context.hash(password) |
||||
|
||||
def check_password(self, password): |
||||
''' checks a password against a stored password hash |
||||
|
||||
if the password algorithm is considered deprecated, the stored hash |
||||
will be updated using the current algorithm |
||||
''' |
||||
ok, new_hash = passlib_context.verify_and_update( |
||||
password, |
||||
self.password_hash |
||||
) |
||||
|
||||
if not ok: |
||||
# password does not match, return False |
||||
return False |
||||
elif new_hash: |
||||
# algorithm is deprecated, update hash with new algorithm |
||||
self.password_hash = new_hash |
||||
|
||||
# password match, return True |
||||
return True |
||||
|
||||
def issue_token(self, request, subject, payload=None): |
||||
''' issues a token for mail change, password reset or user verification |
||||
|
||||
:param request: |
||||
the current request object |
||||
:type request: |
||||
pyramid.request.Request |
||||
:param subject: |
||||
what the token is used for |
||||
:type subject: |
||||
ordr2.models.account.TokenSubject |
||||
:param payload: |
||||
extra data to store with the token, must be JSON serializable |
||||
:rtype: |
||||
(str) unique hash to access the token |
||||
''' |
||||
return Token.issue(request, self, subject, payload) |
||||
|
||||
def __str__(self): |
||||
''' string representation ''' |
||||
return str(self.username) |
||||
|
||||
|
||||
class Token(Base): |
||||
''' Tokens for mail change, account verification and password reset ''' |
||||
|
||||
__tablename__ = 'tokens' |
||||
|
||||
#: hash identifyer of the token |
||||
hash = Column(Unicode, primary_key=True) |
||||
|
||||
#: :class:`ordr2.models.account.TokenSubject` |
||||
subject = Column(Enum(TokenSubject), nullable=False) |
||||
|
||||
#: token expires at this date and time |
||||
expires = Column(DateTime, nullable=False) |
||||
|
||||
#: additional data to attach to a token |
||||
payload = Column(JsonEncoder, nullable=True) |
||||
|
||||
#: the user_id the token belongs to |
||||
owner_id = Column(Integer, ForeignKey('users.id')) |
||||
|
||||
#: the user the token belongs to |
||||
owner = relationship('User', back_populates='tokens') |
||||
|
||||
@classmethod |
||||
def issue(cls, request, owner, subject, payload=None): |
||||
''' issues a token for mail change, password reset or user verification |
||||
|
||||
if the expiry keys for the token is not set in the app configuration, |
||||
the token will expire in five minutes. |
||||
|
||||
to set the expiry time in the conig use `token_expiry.` prefix followed |
||||
by the value of the token subject and a time in minutes. For example, |
||||
to give an active user two hours time to verify an email address change |
||||
use `token_expiry.change_email = 120` |
||||
|
||||
:param request: |
||||
the current request object |
||||
:type request: |
||||
pyramid.request.Request |
||||
:param subject: |
||||
what the token is used for |
||||
:type subject: |
||||
ordr2.models.account.TokenSubject |
||||
:param owner: |
||||
account the token is issued for |
||||
:type subject: |
||||
ordr2.models.account.User |
||||
:param payload: |
||||
extra data to store with the token, must be JSON serializable |
||||
:rtype: |
||||
ordr2.models.account.Token |
||||
''' |
||||
settings_key = 'token_expiry.' + subject.value |
||||
minutes = request.registry.settings.get(settings_key, 5) |
||||
expires = datetime.utcnow() + timedelta(minutes=int(minutes)) |
||||
return cls( |
||||
hash=uuid.uuid4().hex, |
||||
subject=subject, |
||||
payload=payload, |
||||
owner=owner, |
||||
expires=expires) |
@ -1,18 +0,0 @@
@@ -1,18 +0,0 @@
|
||||
from sqlalchemy import ( |
||||
Column, |
||||
Index, |
||||
Integer, |
||||
Text, |
||||
) |
||||
|
||||
from .meta import Base |
||||
|
||||
|
||||
class MyModel(Base): |
||||
__tablename__ = 'models' |
||||
id = Column(Integer, primary_key=True) |
||||
name = Column(Text) |
||||
value = Column(Integer) |
||||
|
||||
|
||||
Index('my_index', MyModel.name, unique=True, mysql_length=255) |
@ -0,0 +1,103 @@
@@ -0,0 +1,103 @@
|
||||
''' Resources for account registraion and settings ''' |
||||
|
||||
from datetime import datetime |
||||
from pyramid.security import Allow, Authenticated, Everyone, Deny, DENY_ALL |
||||
|
||||
from ordr2.models.account import Token, TokenSubject |
||||
from ordr2.resources.base import BaseResource |
||||
|
||||
|
||||
class RegistrationToken(BaseResource): |
||||
''' representing :class:`ordr2.models.account.Token` for registration ''' |
||||
|
||||
def __acl__(self): |
||||
''' access controll list for the resource ''' |
||||
return [ |
||||
(Deny, Authenticated, 'register'), |
||||
(Allow, Everyone, 'register'), |
||||
DENY_ALL |
||||
] |
||||
|
||||
|
||||
class EmailVerificationToken(BaseResource): |
||||
''' representing :class:`ordr2.models.account.Token` for email change ''' |
||||
|
||||
def __acl__(self): |
||||
''' access controll list for the resource |
||||
|
||||
a logged in user might only access his own tokens |
||||
''' |
||||
# self.model is a :class:`ordr2.models.account.Token` instance |
||||
return [ |
||||
(Allow, self.model.owner.principal, 'settings'), |
||||
DENY_ALL |
||||
] |
||||
|
||||
|
||||
class ForgottenPasswordToken(BaseResource): |
||||
''' representing :class:`ordr2.models.account.Token` for password reset ''' |
||||
|
||||
def __acl__(self): |
||||
''' access controll list for the resource ''' |
||||
return [ |
||||
(Allow, Everyone, 'reset password'), |
||||
DENY_ALL |
||||
] |
||||
|
||||
|
||||
class AccountResource(BaseResource): |
||||
''' Resouce class for account registration and settings ''' |
||||
|
||||
#: name of the main navigation section for template highlighting |
||||
nav_section = 'account' |
||||
|
||||
#: mapping token subjects to token resouce classes |
||||
token_resources = { |
||||
TokenSubject.USER_REGISTRATION: RegistrationToken, |
||||
TokenSubject.CHANGE_EMAIL: EmailVerificationToken, |
||||
TokenSubject.RESET_PASSWORD: ForgottenPasswordToken |
||||
} |
||||
|
||||
def __init__(self, name, parent, model=None): |
||||
''' Create a base resource ''' |
||||
# the current model is the current logged in user or None |
||||
super().__init__(name, parent, parent.request.user) |
||||
|
||||
def __acl__(self): |
||||
''' access controll list for the resource |
||||
|
||||
- everyone can log in our log out |
||||
- authenticated users can change their settings |
||||
- unauthenticated users can register |
||||
|
||||
''' |
||||
return [ |
||||
(Allow, Everyone, 'login'), |
||||
(Allow, Everyone, 'logout'), |
||||
(Deny, Authenticated, 'register'), |
||||
(Allow, Everyone, 'register'), |
||||
(Allow, Everyone, 'reset password'), |
||||
(Allow, Authenticated, 'settings'), |
||||
DENY_ALL |
||||
] |
||||
|
||||
def __getitem__(self, key): |
||||
''' provides the dict like interface to access child resources |
||||
|
||||
:param str key: |
||||
token hash or path segment for a child resource |
||||
:rtype: |
||||
subclass of ordr2.resources.base.BaseResource |
||||
:raises: |
||||
KeyError if token hash or path segment is not found |
||||
''' |
||||
token = self.request.dbsession.query(Token).filter_by(hash=key).first() |
||||
if token is None: |
||||
# no token found, search for child node |
||||
return super().__getitem__(key) |
||||
elif token.expires < datetime.utcnow(): |
||||
# token has expired, delete it |
||||
self.request.dbsession.delete(token) |
||||
raise KeyError(f'Token {key} has expired on {token.expires}') |
||||
resource_class = self.token_resources[token.subject] |
||||
return resource_class(key, self, model=token) |
@ -0,0 +1,412 @@
@@ -0,0 +1,412 @@
|
||||
''' Base resource classes ''' |
||||
|
||||
from sqlalchemy import asc, desc |
||||
|
||||
|
||||
class BaseResource(object): |
||||
''' Base resouce class for location aware resources |
||||
|
||||
:param str name: |
||||
url path segment that identifies this resource in its lineage |
||||
:param parent: |
||||
parent resource |
||||
:type parent: |
||||
ordr2.resources.BaseResource |
||||
:param model: |
||||
(optional) a model instance represented by this resource, |
||||
e.g. a database entry |
||||
|
||||
Provides a dict like interface for retrieving child resources used by |
||||
traversal style routing in the Pyramid web framework. |
||||
|
||||
The ``nodes`` property is a dictionary to to match the next url path |
||||
segment in traversal to a child class. |
||||
For example: to return an AccountResouce when the next path segment is |
||||
'account' use ``nodes = {'account': AccountResource}``. |
||||
|
||||
''' |
||||
|
||||
# __name__ and __parent__ properties for location aware resources |
||||
__name__ = None |
||||
__parent__ = None |
||||
|
||||
#: name of the main navigation section for template highlighting |
||||
nav_section = None |
||||
|
||||
#: dict to match the next url path segment |
||||
nodes = {} |
||||
|
||||
def __init__(self, name, parent, model=None): |
||||
''' Create a base resource ''' |
||||
self.__name__ = name |
||||
self.__parent__ = parent |
||||
self.request = parent.request #: the current request |
||||
self.model = model #: a related model instance |
||||
|
||||
def __acl__(self): |
||||
''' access controll list for the resource ''' |
||||
raise NotImplementedError |
||||
|
||||
def __getitem__(self, key): |
||||
''' provides the dict like interface to access child resources |
||||
|
||||
:param str key: |
||||
path segment for a child resource |
||||
:rtype: |
||||
subclass of ordr2.resources.base.BaseResource |
||||
:raises: |
||||
KeyError if path segment is not found |
||||
''' |
||||
node_class = self.nodes[key] |
||||
return node_class(key, self) |
||||
|
||||
|
||||
class Pagination(object): |
||||
''' calculates pagination information |
||||
|
||||
:param int current: current page number |
||||
:param int count: total number of items |
||||
:param int items: number of items displayed per pages |
||||
:param int window_size: |
||||
size of pagination window |
||||
lets assume the current page is 10 and window size is 7 |
||||
self.window = [7, 8, 9, 10, 11, 12, 13] |
||||
''' |
||||
|
||||
def __init__(self, current, count, items, window_size): |
||||
''' calculates pagination information |
||||
|
||||
:param int current: current page number |
||||
:param int count: total number of items |
||||
:param int items: number of items displayed per pages |
||||
:param int window_size: |
||||
size of pagination window |
||||
lets assume the current page is 10 and window size is 7 |
||||
self.window = [7, 8, 9, 10, 11, 12, 13] |
||||
''' |
||||
|
||||
self.count = count #: total number of items |
||||
self.items_per_page = items #: items displayed per page |
||||
self.first = None #: number of first page |
||||
self.current = None #: number of current (displayed) page |
||||
self.last = None #: number of last page |
||||
self.previous = None #: number of previous page |
||||
self.next = None #: number of next page |
||||
self.window = [] #: page window |
||||
|
||||
if count > 0: |
||||
# only do the calculation if there are items to be paginated |
||||
self.calculate(current, window_size) |
||||
|
||||
def calculate(self, current, window_size): |
||||
# calculate number of pages |
||||
pages = (self.count - 1) // self.items_per_page + 1 |
||||
|
||||
# set the number of the first and last page |
||||
self.first = 1 |
||||
self.last = max(self.first, pages) |
||||
|
||||
# set current, previous and next page |
||||
self.current = self.is_valid(current, default=self.first) |
||||
self.previous = self.is_valid(self.current - 1) |
||||
self.next = self.is_valid(self.current + 1) |
||||
|
||||
# window calculations |
||||
# example: lets assume the current page is 10 and window size is 7 |
||||
# self.window = [7, 8, 9, 10, 11, 12, 13] |
||||
half_window = window_size // 2 |
||||
start = self.current - half_window |
||||
end = self.current + half_window |
||||
calculated_window = range(start, end + 1) |
||||
self.window = [p for p in calculated_window if self.is_valid(p)] |
||||
|
||||
def is_valid(self, page, default=None): |
||||
''' checks if the given page is valid, returns default if not |
||||
|
||||
:param int page: the page number to test |
||||
:param default: the value to return if the test fails |
||||
''' |
||||
if self.count and (self.first <= page <= self.last): |
||||
return page |
||||
return default |
||||
|
||||
|
||||
class BaseListResource(BaseResource): |
||||
''' Base resorce class for listings of other resources |
||||
|
||||
The BaseListResource represents a view to a list of resources, like |
||||
products, users, etc. This includes pagination, sorting and filtering of |
||||
the resources. |
||||
|
||||
Inherited classes must at least set one parameter and implement three |
||||
mehtods: |
||||
- ``child_resource_class`` |
||||
- ``set_base_query()`` |
||||
The base query is used for basic filtering that should be applied in |
||||
all cases; for example to filter out any products that are not in stock |
||||
or ariticles in draft mode. This query is also used when traversing |
||||
to child resources |
||||
- ``set_filtered_query()`` |
||||
The filtered query extends the base query and applies filters for a |
||||
specific view, like show only blue cheeses. This query is used for |
||||
calulating pagination and sorting is applied when listing child |
||||
resources. |
||||
- ``get_sort_by_field(sort_by)`` |
||||
add a sorting instruction to the query |
||||
|
||||
''' |
||||
|
||||
#: GET key for page number |
||||
get_key_page = 'p' |
||||
|
||||
#: GET key for items per page |
||||
get_key_items_per_page = 'n' |
||||
|
||||
#: GET key for order by column |
||||
get_key_sort_by = 'o' |
||||
|
||||
#: GET key for order by direction |
||||
get_key_sort_dir = 'd' |
||||
|
||||
#: default items per page |
||||
default_items_per_page = 12 |
||||
|
||||
#: default size of pagination window |
||||
default_window_size = 7 |
||||
|
||||
#: default sort direction |
||||
default_sort_dir = 'asc' |
||||
|
||||
#: default sort by |
||||
default_sort_by = None |
||||
|
||||
#: class of child resources |
||||
child_resource_class = None |
||||
|
||||
def __init__(self, name, parent): |
||||
''' Instance creation ''' |
||||
super().__init__(name, parent) |
||||
|
||||
self.base_query = None #: base database query |
||||
self.filtered_query = None #: database query with reuest filters |
||||
self.filters = {} #: applied view filters |
||||
self.sort_by = None #: applied sorting filed |
||||
self.sort_dir = None #: applied sorting direction |
||||
self.pages = None #: pagination info |
||||
|
||||
self.set_base_query() |
||||
self.set_filtered_query() |
||||
self.calculate_pagination() |
||||
|
||||
def set_base_query(self): |
||||
''' setup of the basic database query |
||||
|
||||
The base query is used for basic filtering that should be applied in |
||||
all cases; for example to filter out any products that are not in stock |
||||
or ariticles in draft mode. This query is also used when traversing |
||||
to child resources |
||||
|
||||
This method must be implemented in a inherited class:: |
||||
|
||||
def set_base_query(self): |
||||
self.base_query = ( |
||||
self.request.dbsession |
||||
.query(Cheeses) |
||||
.filter_by(in_stock==True) |
||||
) |
||||
''' |
||||
raise NotImplementedError |
||||
|
||||
def set_filtered_query(self): |
||||
''' setup of the database query for a specific view |
||||
|
||||
the filtered query extends the base query and applies filters for a |
||||
specific view, like show only blue cheeses. This query is used for |
||||
calulating pagination and sorting is applied when listing child |
||||
resources. |
||||
|
||||
This method must be implemented in a inherited class:: |
||||
|
||||
def set_filtered_query(self): |
||||
query = self.base_query |
||||
# filter by type of cheese |
||||
query = self._filter_by('type', Cheese.type, query) |
||||
query = self._filter_by('age', Cheeses.age, query) |
||||
self.filtered_query = query |
||||
|
||||
''' |
||||
raise NotImplementedError |
||||
|
||||
def get_sort_by_field(self, sort_by): |
||||
''' returns the SQLalchemy model field to sort by |
||||
|
||||
:param str sort_by: |
||||
a lowercase identifier for the field to sort by |
||||
:returns: |
||||
SQLalchemy model field or None |
||||
|
||||
This method must be implemented in a inherited class:: |
||||
|
||||
def get_sort_by_field(self, sort_by): |
||||
if sort_by == 'type': |
||||
return Cheese.type |
||||
''' |
||||
raise NotImplementedError |
||||
|
||||
def _filter_by(self, get_key, model_field, query): |
||||
''' helper method to appyl a simple filter to a query |
||||
|
||||
it also records the filters applied to the view query in `self.filters` |
||||
|
||||
:param str get_key: |
||||
name of the GET key to query |
||||
:param model_field: |
||||
field of SQLalchemy model the filter should be applied on |
||||
:param query: |
||||
SQLalchemy query object |
||||
:returns: |
||||
SQLalchemy query object with applied filter |
||||
''' |
||||
filter_value = self.request.GET.get(get_key, None) |
||||
if filter_value: |
||||
query = query.filter_by(model_field=filter_value) |
||||
self.active_filters[get_key] = filter_value |
||||
return query |
||||
|
||||
def prepare_sorted_query(self, query): |
||||
''' add sorting to the query ''' |
||||
|
||||
# first the sorting information from request.GET is used |
||||
sort_by = self.request.GET.get(self.get_key_sort_by, None) |
||||
sort_field = self.get_sort_by_field(sort_by) |
||||
if sort_field: |
||||
direction = self.request.GET.get(self.get_key_sort_dir, 'asc') |
||||
direction = 'asc' if direction.lower() == 'asc' else 'desc' |
||||
sort_func = asc if direction == 'asc' else desc |
||||
query = query.order_by(sort_func(sort_field)) |
||||
self.sort_by = sort_by |
||||
self.sort_dir = direction |
||||
|
||||
# default sorting is applied if not already sorted by this field |
||||
if self.default_sort_by and self.sort_by != self.default_sort_by: |
||||
sort_field = self.get_sort_by_field(self.default_sort_by) |
||||
sort_func = asc if self.default_sort_dir == 'asc' else desc |
||||
query = query.order_by(sort_func(sort_field)) |
||||
if not self.sort_by: |
||||
self.sort_by = self.default_sort_by |
||||
self.sort_dir = self.default_sort_dir |
||||
|
||||
return query |
||||
|
||||
def calculate_pagination(self): |
||||
''' calculates the pagination info ''' |
||||
current_page = self._get_int(self.get_key_page, 1) |
||||
items_per_page = self._get_int( |
||||
self.get_key_items_per_page, |
||||
self.default_items_per_page |
||||
) |
||||
self.pages = Pagination( |
||||
current_page, |
||||
self.filtered_query.count(), |
||||
items_per_page, |
||||
self.default_window_size |
||||
) |
||||
|
||||
def items(self): |
||||
''' returns the items of the current page as resources''' |
||||
if not self.pages.count: |
||||
return [] |
||||
|
||||
# add the sorting |
||||
query = self.prepare_sorted_query(self.filtered_query) |
||||
|
||||
# add offset and limit limit |
||||
offset = (self.pages.current - 1) * self.pages.items_per_page |
||||
query = query.offset(offset).limit(self.pages.items_per_page) |
||||
|
||||
# return a list of resources representing the items found by the query |
||||
return [ |
||||
self._child_resource(item) |
||||
for item |
||||
in query.all() |
||||
] |
||||
|
||||
def __getitem__(self, key): |
||||
''' returns a child resource representing a sqlalchemy model ''' |
||||
model = self.base_query.get(key) |
||||
if model: |
||||
return self._child_resource(model) |
||||
return super().__getitem__(key) |
||||
|
||||
def _child_resource(self, item): |
||||
''' helper function that returns an SQLalchemy model as resource ''' |
||||
return self.child_resource_class(item.id, self, model=item) |
||||
|
||||
def _get_int(self, key, default): |
||||
''' returns the value of GET[key] as integer or default |
||||
|
||||
:param str key: the key for the value of request.GET |
||||
:param int default: the default value, returned if conversion fails |
||||
:rtype: int |
||||
''' |
||||
try: |
||||
return int(self.request.GET[key]) |
||||
except (KeyError, ValueError, TypeError): |
||||
return default |
||||
|
||||
def query_params(self, override=None): |
||||
''' query parameters for the active filters, sorting and page |
||||
|
||||
:param dict override: |
||||
values that override the current filter, sorting or page settings |
||||
|
||||
Example:: |
||||
|
||||
# current page, sorting, etc. |
||||
current = context.query_params() |
||||
current == {'p':1, 'n':12, 'o':'name', 'd':'asc', 'type':'brie'} |
||||
# next page with same sorting but type filter removed |
||||
next = context.query_params({'p':2, 'type': None}) |
||||
next == {'p':2, 'n':12, 'o':'name', 'd':'asc'} |
||||
''' |
||||
params = {} |
||||
if self.pages.current: |
||||
params[self.get_key_page] = self.pages.current |
||||
params[self.get_key_items_per_page] = self.pages.items_per_page |
||||
|
||||
if self.sort_by: |
||||
params[self.get_key_sort_by] = self.sort_by |
||||
params[self.get_key_sort_dir] = self.sort_dir |
||||
|
||||
for key, value in self.active_filters.items(): |
||||
params[key] = value |
||||
|
||||
if override: |
||||
params.update(override) |
||||
|
||||
return {k: v for k, v in params.items() if v is not None} |
||||
|
||||
def resource_url(self, resource, *args, override=None, **kwargs): |
||||
''' resource url for a context with query parameters for current view |
||||
|
||||
:param resource: resource or view name to generate the url for |
||||
:type resource: :class:`BaseResource` or ``str`` |
||||
:param list args: elements for url construction |
||||
:param dict override: overriding query params, see ``query_params()`` |
||||
|
||||
if the resource provided is a string, the current instance is |
||||
prepended:: |
||||
|
||||
# this |
||||
context.resoure_url('edit') |
||||
# is the same as |
||||
current_params = context.query_params() |
||||
url = request.resource_url(context, 'edit', query=current_params) |
||||
|
||||
''' |
||||
if isinstance(resource, str): |
||||
chain = [self, resource] + args |
||||
else: |
||||
chain = [resource] + args |
||||
kwargs['query'] = self.query_params(override) |
||||
return self.request.resource_url(*chain, **kwargs) |
@ -0,0 +1,55 @@
@@ -0,0 +1,55 @@
|
||||
''' Schemas (sub) package, for form rendering and validation ''' |
||||
|
||||
import colander |
||||
import deform |
||||
|
||||
from deform.renderer import configure_zpt_renderer |
||||
|
||||
from .helpers import ( |
||||
deferred_csrf_default, |
||||
deferred_csrf_validator |
||||
) |
||||
|
||||
|
||||
# Base Schema |
||||
|
||||
class CSRFSchema(colander.Schema): |
||||
''' base class for schemas with csrf validation ''' |
||||
|
||||
csrf_token = colander.SchemaNode( |
||||
colander.String(), |
||||
default=deferred_csrf_default, |
||||
validator=deferred_csrf_validator, |
||||
widget=deform.widget.HiddenWidget(), |
||||
) |
||||
|
||||
@classmethod |
||||
def as_form(cls, request, **kwargs): |
||||
''' returns the schema as a form |
||||
|
||||
:param request: |
||||
the current request |
||||
:type request: |
||||
pyramid.request.Request |
||||
:param kwargs: |
||||
additional parameters for the form rendering. |
||||
url is not set, the current context and view name will be used to |
||||
constuct a url for the form |
||||
''' |
||||
url = kwargs.pop('url', None) |
||||
if not url: |
||||
url = request.resource_url(request.context, request.view_name) |
||||
schema = cls().bind(request=request) |
||||
form = deform.Form(schema, action=url, **kwargs) |
||||
return form |
||||
|
||||
|
||||
def includeme(config): |
||||
''' |
||||
Initialize the form schemas |
||||
|
||||
Activate this setup using ``config.include('ordr2.schemas')``. |
||||
|
||||
''' |
||||
# Make Deform widgets aware of our widget template paths |
||||
configure_zpt_renderer(['ordr2:templates/deform']) |
@ -0,0 +1,127 @@
@@ -0,0 +1,127 @@
|
||||
import colander |
||||
import deform |
||||
|
||||
from ordr2.models import Role |
||||
|
||||
from . import CSRFSchema |
||||
from .helpers import ( |
||||
deferred_unique_email_validator, |
||||
deferred_unique_username_validator, |
||||
deferred_password_validator |
||||
) |
||||
|
||||
|
||||
# schema for user registration |
||||
|
||||
class RegistrationSchema(CSRFSchema): |
||||
''' new user registration ''' |
||||
|
||||
username = colander.SchemaNode( |
||||
colander.String(), |
||||
widget=deform.widget.TextInputWidget(readonly=True), |
||||
description='automagically generated for you', |
||||
validator=deferred_unique_username_validator, |
||||
) |
||||
first_name = colander.SchemaNode( |
||||
colander.String() |
||||
) |
||||
last_name = colander.SchemaNode( |
||||
colander.String() |
||||
) |
||||
email = colander.SchemaNode( |
||||
colander.String(), |
||||
validator=deferred_unique_email_validator |
||||
) |
||||
password = colander.SchemaNode( |
||||
colander.String(), |
||||
widget=deform.widget.CheckedPasswordWidget() |
||||
) |
||||
|
||||
@classmethod |
||||
def as_form(cls, request, **override): |
||||
settings = { |
||||
'buttons': ('Create Account', 'Cancel'), |
||||
'css_class': 'form registration' |
||||
} |
||||
settings.update(override) |
||||
return super().as_form(request, **settings) |
||||
|
||||
|
||||
class ResetPasswordSchema(CSRFSchema): |
||||
''' reset a password ''' |
||||
|
||||
password = colander.SchemaNode( |
||||
colander.String(), |
||||
widget=deform.widget.CheckedPasswordWidget() |
||||
) |
||||
|
||||
@classmethod |
||||
def as_form(cls, request, **override): |
||||
settings = { |
||||
'buttons': ('Reset Password', 'Cancel'), |
||||
'css_class': 'form reset-password' |
||||
} |
||||
settings.update(override) |
||||
return super().as_form(request, **settings) |
||||
|
||||
|
||||
|
||||
class SettingsSectionGeneralSchema(colander.Schema): |
||||
''' Section 'General' for account settings schema ''' |
||||
|
||||
username = colander.SchemaNode( |
||||
colander.String(), |
||||
widget=deform.widget.TextInputWidget(readonly=True), |
||||
) |
||||
first_name = colander.SchemaNode( |
||||
colander.String() |
||||
) |
||||
last_name = colander.SchemaNode( |
||||
colander.String() |
||||
) |
||||
email = colander.SchemaNode( |
||||
colander.String(), |
||||
validator=deferred_unique_email_validator |
||||
) |
||||
role = colander.SchemaNode( |
||||
colander.String(), |
||||
widget=deform.widget.TextInputWidget(readonly=True), |
||||
) |
||||
|
||||
|
||||
class SettingsSectionChangePasswordSchema(colander.Schema): |
||||
''' Section 'Change Password' for account settings schema ''' |
||||
|
||||
new_password = colander.SchemaNode( |
||||
colander.String(), |
||||
widget=deform.widget.CheckedPasswordWidget(), |
||||
missing='' |
||||
) |
||||
|
||||
|
||||
class SettingsSectionConfirmChangesSchema(colander.Schema): |
||||
''' Section 'ConfirmChanges' for account settings schema ''' |
||||
|
||||
password = colander.SchemaNode( |
||||
colander.String(), |
||||
widget=deform.widget.PasswordWidget(), |
||||
validator=deferred_password_validator, |
||||
description='Enter your current password to confirm changes' |
||||
) |
||||
|
||||
|
||||
class AccountSettingsSchema(CSRFSchema): |
||||
''' account settings schema ''' |
||||
|
||||
general = SettingsSectionGeneralSchema() |
||||
change_password = SettingsSectionChangePasswordSchema() |
||||
confirm_changes = SettingsSectionConfirmChangesSchema() |
||||
|
||||
@classmethod |
||||
def as_form(cls, request, **override): |
||||
settings = { |
||||
'buttons': ('Save Settings', 'Cancel'), |
||||
'css_class': 'form account-settings' |
||||
} |
||||
settings.update(override) |
||||
return super().as_form(request, **settings) |
@ -0,0 +1,63 @@
@@ -0,0 +1,63 @@
|
||||
''' helper functions for schemas ''' |
||||
|
||||
import colander |
||||
|
||||
from pyramid.csrf import get_csrf_token, check_csrf_token |
||||
|
||||
from ordr2.models import User |
||||
|
||||
|
||||
@colander.deferred |
||||
def deferred_csrf_default(node, kw): |
||||
''' sets the current csrf token ''' |
||||
request = kw.get('request') |
||||
return get_csrf_token(request) |
||||
|
||||
|
||||
@colander.deferred |
||||
def deferred_csrf_validator(node, kw): |
||||
''' validates a submitted csrf token ''' |
||||
def validate_csrf(node, value): |
||||
request = kw.get('request') |
||||
if not check_csrf_token(request, raises=False): |
||||
raise colander.Invalid(node, 'Bad CSRF token') |
||||
return validate_csrf |
||||
|
||||
|
||||
@colander.deferred |
||||
def deferred_unique_username_validator(node, kw): |
||||
''' checks if an username is not registered already ''' |
||||
|
||||
def validate_unique_username(node, value): |
||||
request = kw.get('request') |
||||
user = request.dbsession.query(User).filter_by(username=value).first() |
||||
if user is not None: |
||||
raise colander.Invalid(node, 'User name already registered') |
||||
return validate_unique_username |
||||
|
||||
|
||||
@colander.deferred |
||||
def deferred_unique_email_validator(node, kw): |
||||
''' checks if an email is not registered already ''' |
||||
email_validator = colander.Email() |
||||
|
||||
def validate_unique_email(node, value): |
||||
email_validator(node, value) # raises exception on invalid address |
||||
request = kw.get('request') |
||||
user = request.dbsession.query(User).filter_by(email=value).first() |
||||
if user not in (None, request.context.model): |
||||
# allow existing email addresses if |
||||
# it belongs to the user that is currently edited |
||||
raise colander.Invalid(node, 'Email address in use') |
||||
return validate_unique_email |
||||
|
||||
|
||||
@colander.deferred |
||||
def deferred_password_validator(node, kw): |
||||
''' checks password confirmation for settings ''' |
||||
|
||||
def validate_password_confirmation(node, value): |
||||
request = kw.get('request') |
||||
if request.user is None or not request.user.check_password(value): |
||||
raise colander.Invalid(node, 'Wrong password') |
||||
return validate_password_confirmation |
@ -0,0 +1,70 @@
@@ -0,0 +1,70 @@
|
||||
''' User Authentication and Authorization ''' |
||||
|
||||
from pyramid.authentication import AuthTktAuthenticationPolicy |
||||
from pyramid.authorization import ACLAuthorizationPolicy |
||||
from pyramid.security import Authenticated, Everyone |
||||
|
||||
from ordr2.models.account import User, passlib_context |
||||
|
||||
|
||||
class AuthenticationPolicy(AuthTktAuthenticationPolicy): |
||||
''' How to authenticate users ''' |
||||
|
||||
def authenticated_userid(self, request): |
||||
''' returns the id of an authenticated user |
||||
|
||||
heavy lifting done in get_user() attached to request |
||||
''' |
||||
user = request.user |
||||
if user is not None: |
||||
return user.id |
||||
|
||||
def effective_principals(self, request): |
||||
''' returns a list of principals for the user ''' |
||||
principals = [Everyone] |
||||
user = request.user |
||||
if user is not None: |
||||
principals.append(Authenticated) |
||||
principals.append(user.principal) |
||||
principals.extend(user.role_principals) |
||||
return principals |
||||
|
||||
|
||||
def get_user(request): |
||||
''' retrieves the user object by the unauthenticated user id |
||||
|
||||
:param request: |
||||
the current request object |
||||
:type request: |
||||
pyramid.request.Request |
||||
:rtype: |
||||
:class:`ordr2.models.account.User` or None |
||||
''' |
||||
user_id = request.unauthenticated_userid |
||||
if user_id is not None: |
||||
user = request.dbsession.query(User).filter_by(id=user_id).first() |
||||
if user and user.is_active: |
||||
return user |
||||
return None |
||||
|
||||
|
||||
def includeme(config): |
||||
''' initializing authentication, authorization and password hash settings |
||||
|
||||
Activate this setup using ``config.include('ordr2.security')``. |
||||
''' |
||||
settings = config.get_settings() |
||||
|
||||
# configure the passlib context manager for hashing user passwords |
||||
passlib_context.load_path(settings['passlib.config']) |
||||
|
||||
# config for authentication and authorization |
||||
authn_policy = AuthenticationPolicy( |
||||
settings['auth.secret'], |
||||
hashalg='sha512', |
||||
) |
||||
config.set_authentication_policy(authn_policy) |
||||
config.set_authorization_policy(ACLAuthorizationPolicy()) |
||||
|
||||
# attach the get_user function returned by get_user_closure() |
||||
config.add_request_method(get_user, 'user', reify=True) |
@ -0,0 +1,19 @@
@@ -0,0 +1,19 @@
|
||||
''' Session configuration ''' |
||||
|
||||
import binascii |
||||
|
||||
from pyramid_nacl_session import EncryptedCookieSessionFactory |
||||
|
||||
|
||||
def includeme(config): |
||||
''' initializing session configuration |
||||
|
||||
Activate this setup using ``config.include('ordr2.session')``. |
||||
''' |
||||
|
||||
settings = config.get_settings() |
||||
hex_secret = settings['session.secret'].strip() |
||||
secret = binascii.unhexlify(hex_secret) |
||||
|
||||
factory = EncryptedCookieSessionFactory(secret) |
||||
config.set_session_factory(factory) |
@ -0,0 +1,952 @@
@@ -0,0 +1,952 @@
|
||||
/* Bootstrap */ |
||||
|
||||
@font-face { |
||||
font-family: 'Icons'; |
||||
src: url('../fonts/open-iconic.eot'); |
||||
src: url('../fonts/open-iconic.eot?#iconic-sm') format('embedded-opentype'), url('../fonts/open-iconic.woff') format('woff'), url('../fonts/open-iconic.ttf') format('truetype'), url('../fonts/open-iconic.otf') format('opentype'), url('../fonts/open-iconic.svg#iconic-sm') format('svg'); |
||||
font-weight: normal; |
||||
font-style: normal; |
||||
} |
||||
|
||||
.oi { |
||||
position: relative; |
||||
top: 1px; |
||||
display: inline-block; |
||||
speak:none; |
||||
font-family: 'Icons'; |
||||
font-style: normal; |
||||
font-weight: normal; |
||||
line-height: 1; |
||||
-webkit-font-smoothing: antialiased; |
||||
-moz-osx-font-smoothing: grayscale; |
||||
} |
||||
|
||||
.oi:empty:before { |
||||
width: 1em; |
||||
text-align: center; |
||||
box-sizing: content-box; |
||||
} |
||||
|
||||
.oi.oi-align-center:before { |
||||
text-align: center; |
||||
} |
||||
|
||||
.oi.oi-align-left:before { |
||||
text-align: left; |
||||
} |
||||
|
||||
.oi.oi-align-right:before { |
||||
text-align: right; |
||||
} |
||||
|
||||
|
||||
.oi.oi-flip-horizontal:before { |
||||
-webkit-transform: scale(-1, 1); |
||||
-ms-transform: scale(-1, 1); |
||||
transform: scale(-1, 1); |
||||
} |
||||
|
||||
.oi.oi-flip-vertical:before { |
||||
-webkit-transform: scale(1, -1); |
||||
-ms-transform: scale(-1, 1); |
||||
transform: scale(1, -1); |
||||
} |
||||
|
||||
.oi.oi-flip-horizontal-vertical:before { |
||||
-webkit-transform: scale(-1, -1); |
||||
-ms-transform: scale(-1, 1); |
||||
transform: scale(-1, -1); |
||||
} |
||||
|
||||
|
||||
.oi-account-login:before { |
||||
content:'\e000'; |
||||
} |
||||
|
||||
.oi-account-logout:before { |
||||
content:'\e001'; |
||||
} |
||||
|
||||
.oi-action-redo:before { |
||||
content:'\e002'; |
||||
} |
||||
|
||||
.oi-action-undo:before { |
||||
content:'\e003'; |
||||
} |
||||
|
||||
.oi-align-center:before { |
||||
content:'\e004'; |
||||
} |
||||
|
||||
.oi-align-left:before { |
||||
content:'\e005'; |
||||
} |
||||
|
||||
.oi-align-right:before { |
||||
content:'\e006'; |
||||
} |
||||
|
||||
.oi-aperture:before { |
||||
content:'\e007'; |
||||
} |
||||
|
||||
.oi-arrow-bottom:before { |
||||
content:'\e008'; |
||||
} |
||||
|
||||
.oi-arrow-circle-bottom:before { |
||||
content:'\e009'; |
||||
} |
||||
|
||||
.oi-arrow-circle-left:before { |
||||
content:'\e00a'; |
||||
} |
||||
|
||||
.oi-arrow-circle-right:before { |
||||
content:'\e00b'; |
||||
} |
||||
|
||||
.oi-arrow-circle-top:before { |
||||
content:'\e00c'; |
||||
} |
||||
|
||||
.oi-arrow-left:before { |
||||
content:'\e00d'; |
||||
} |
||||
|
||||
.oi-arrow-right:before { |
||||
content:'\e00e'; |
||||
} |
||||
|
||||
.oi-arrow-thick-bottom:before { |
||||
content:'\e00f'; |
||||
} |
||||
|
||||
.oi-arrow-thick-left:before { |
||||
content:'\e010'; |
||||
} |
||||
|
||||
.oi-arrow-thick-right:before { |
||||
content:'\e011'; |
||||
} |
||||
|
||||
.oi-arrow-thick-top:before { |
||||
content:'\e012'; |
||||
} |
||||
|
||||
.oi-arrow-top:before { |
||||
content:'\e013'; |
||||
} |
||||
|
||||
.oi-audio-spectrum:before { |
||||
content:'\e014'; |
||||
} |
||||
|
||||
.oi-audio:before { |
||||
content:'\e015'; |
||||
} |
||||
|
||||
.oi-badge:before { |
||||
content:'\e016'; |
||||
} |
||||
|
||||
.oi-ban:before { |
||||
content:'\e017'; |
||||
} |
||||
|
||||
.oi-bar-chart:before { |
||||
content:'\e018'; |
||||
} |
||||
|
||||
.oi-basket:before { |
||||
content:'\e019'; |
||||
} |
||||
|
||||
.oi-battery-empty:before { |
||||
content:'\e01a'; |
||||
} |
||||
|
||||
.oi-battery-full:before { |
||||
content:'\e01b'; |
||||
} |
||||
|
||||
.oi-beaker:before { |
||||
content:'\e01c'; |
||||
} |
||||
|
||||
.oi-bell:before { |
||||
content:'\e01d'; |
||||
} |
||||
|
||||
.oi-bluetooth:before { |
||||
content:'\e01e'; |
||||
} |
||||
|
||||
.oi-bold:before { |
||||
content:'\e01f'; |
||||
} |
||||
|
||||
.oi-bolt:before { |
||||
content:'\e020'; |
||||
} |
||||
|
||||
.oi-book:before { |
||||
content:'\e021'; |
||||
} |
||||
|
||||
.oi-bookmark:before { |
||||
content:'\e022'; |
||||
} |
||||
|
||||
.oi-box:before { |
||||
content:'\e023'; |
||||
} |
||||
|
||||
.oi-briefcase:before { |
||||
content:'\e024'; |
||||
} |
||||
|
||||
.oi-british-pound:before { |
||||
content:'\e025'; |
||||
} |
||||
|
||||
.oi-browser:before { |
||||
content:'\e026'; |
||||
} |
||||
|
||||
.oi-brush:before { |
||||
content:'\e027'; |
||||
} |
||||
|
||||
.oi-bug:before { |
||||
content:'\e028'; |
||||
} |
||||
|
||||
.oi-bullhorn:before { |
||||
content:'\e029'; |
||||
} |
||||
|
||||
.oi-calculator:before { |
||||
content:'\e02a'; |
||||
} |
||||
|
||||
.oi-calendar:before { |
||||
content:'\e02b'; |
||||
} |
||||
|
||||
.oi-camera-slr:before { |
||||
content:'\e02c'; |
||||
} |
||||
|
||||
.oi-caret-bottom:before { |
||||
content:'\e02d'; |
||||
} |
||||
|
||||
.oi-caret-left:before { |
||||
content:'\e02e'; |
||||
} |
||||
|
||||
.oi-caret-right:before { |
||||
content:'\e02f'; |
||||
} |
||||
|
||||
.oi-caret-top:before { |
||||
content:'\e030'; |
||||
} |
||||
|
||||
.oi-cart:before { |
||||
content:'\e031'; |
||||
} |
||||
|
||||
.oi-chat:before { |
||||
content:'\e032'; |
||||
} |
||||
|
||||
.oi-check:before { |
||||
content:'\e033'; |
||||
} |
||||
|
||||
.oi-chevron-bottom:before { |
||||
content:'\e034'; |
||||
} |
||||
|
||||
.oi-chevron-left:before { |
||||
content:'\e035'; |
||||
} |
||||
|
||||
.oi-chevron-right:before { |
||||
content:'\e036'; |
||||
} |
||||
|
||||
.oi-chevron-top:before { |
||||
content:'\e037'; |
||||
} |
||||
|
||||
.oi-circle-check:before { |
||||
content:'\e038'; |
||||
} |
||||
|
||||
.oi-circle-x:before { |
||||
content:'\e039'; |
||||
} |
||||
|
||||
.oi-clipboard:before { |
||||
content:'\e03a'; |
||||
} |
||||
|
||||
.oi-clock:before { |
||||
content:'\e03b'; |
||||
} |
||||
|
||||
.oi-cloud-download:before { |
||||
content:'\e03c'; |
||||
} |
||||
|
||||
.oi-cloud-upload:before { |
||||
content:'\e03d'; |
||||
} |
||||
|
||||
.oi-cloud:before { |
||||
content:'\e03e'; |
||||
} |
||||
|
||||
.oi-cloudy:before { |
||||
content:'\e03f'; |
||||
} |
||||
|
||||
.oi-code:before { |
||||
content:'\e040'; |
||||
} |
||||
|
||||
.oi-cog:before { |
||||
content:'\e041'; |
||||
} |
||||
|
||||
.oi-collapse-down:before { |
||||
content:'\e042'; |
||||
} |
||||
|
||||
.oi-collapse-left:before { |
||||
content:'\e043'; |
||||
} |
||||
|
||||
.oi-collapse-right:before { |
||||
content:'\e044'; |
||||
} |
||||
|
||||
.oi-collapse-up:before { |
||||
content:'\e045'; |
||||
} |
||||
|
||||
.oi-command:before { |
||||
content:'\e046'; |
||||
} |
||||
|
||||
.oi-comment-square:before { |
||||
content:'\e047'; |
||||
} |
||||
|
||||
.oi-compass:before { |
||||
content:'\e048'; |
||||
} |
||||
|
||||
.oi-contrast:before { |
||||
content:'\e049'; |
||||
} |
||||
|
||||
.oi-copywriting:before { |
||||
content:'\e04a'; |
||||
} |
||||
|
||||
.oi-credit-card:before { |
||||
content:'\e04b'; |
||||
} |
||||
|
||||
.oi-crop:before { |
||||
content:'\e04c'; |
||||
} |
||||
|
||||
.oi-dashboard:before { |
||||
content:'\e04d'; |
||||
} |
||||
|
||||
.oi-data-transfer-download:before { |
||||
content:'\e04e'; |
||||
} |
||||
|
||||
.oi-data-transfer-upload:before { |
||||
content:'\e04f'; |
||||
} |
||||
|
||||
.oi-delete:before { |
||||
content:'\e050'; |
||||
} |
||||
|
||||
.oi-dial:before { |
||||
content:'\e051'; |
||||
} |
||||
|
||||
.oi-document:before { |
||||
content:'\e052'; |
||||
} |
||||
|
||||
.oi-dollar:before { |
||||
content:'\e053'; |
||||
} |
||||
|
||||
.oi-double-quote-sans-left:before { |
||||
content:'\e054'; |
||||
} |
||||
|
||||
.oi-double-quote-sans-right:before { |
||||
content:'\e055'; |
||||
} |
||||
|
||||
.oi-double-quote-serif-left:before { |
||||
content:'\e056'; |
||||
} |
||||
|
||||
.oi-double-quote-serif-right:before { |
||||
content:'\e057'; |
||||
} |
||||
|
||||
.oi-droplet:before { |
||||
content:'\e058'; |
||||
} |
||||
|
||||
.oi-eject:before { |
||||
content:'\e059'; |
||||
} |
||||
|
||||
.oi-elevator:before { |
||||
content:'\e05a'; |
||||
} |
||||
|
||||
.oi-ellipses:before { |
||||
content:'\e05b'; |
||||
} |
||||
|
||||
.oi-envelope-closed:before { |
||||
content:'\e05c'; |
||||
} |
||||
|
||||
.oi-envelope-open:before { |
||||
content:'\e05d'; |
||||
} |
||||
|
||||
.oi-euro:before { |
||||
content:'\e05e'; |
||||
} |
||||
|
||||
.oi-excerpt:before { |
||||
content:'\e05f'; |
||||
} |
||||
|
||||
.oi-expand-down:before { |
||||
content:'\e060'; |
||||
} |
||||
|
||||
.oi-expand-left:before { |
||||
content:'\e061'; |
||||
} |
||||
|
||||
.oi-expand-right:before { |
||||
content:'\e062'; |
||||
} |
||||
|
||||
.oi-expand-up:before { |
||||
content:'\e063'; |
||||
} |
||||
|
||||
.oi-external-link:before { |
||||
content:'\e064'; |
||||
} |
||||
|
||||
.oi-eye:before { |
||||
content:'\e065'; |
||||
} |
||||
|
||||
.oi-eyedropper:before { |
||||
content:'\e066'; |
||||
} |
||||
|
||||
.oi-file:before { |
||||
content:'\e067'; |
||||
} |
||||
|
||||
.oi-fire:before { |
||||
content:'\e068'; |
||||
} |
||||
|
||||
.oi-flag:before { |
||||
content:'\e069'; |
||||
} |
||||
|
||||
.oi-flash:before { |
||||
content:'\e06a'; |
||||
} |
||||
|
||||
.oi-folder:before { |
||||
content:'\e06b'; |
||||
} |
||||
|
||||
.oi-fork:before { |
||||
content:'\e06c'; |
||||
} |
||||
|
||||
.oi-fullscreen-enter:before { |
||||
content:'\e06d'; |
||||
} |
||||
|
||||
.oi-fullscreen-exit:before { |
||||
content:'\e06e'; |
||||
} |
||||
|
||||
.oi-globe:before { |
||||
content:'\e06f'; |
||||
} |
||||
|
||||
.oi-graph:before { |
||||
content:'\e070'; |
||||
} |
||||
|
||||
.oi-grid-four-up:before { |
||||
content:'\e071'; |
||||
} |
||||
|
||||
.oi-grid-three-up:before { |
||||
content:'\e072'; |
||||
} |
||||
|
||||
.oi-grid-two-up:before { |
||||
content:'\e073'; |
||||
} |
||||
|
||||
.oi-hard-drive:before { |
||||
content:'\e074'; |
||||
} |
||||
|
||||
.oi-header:before { |
||||
content:'\e075'; |
||||
} |
||||
|
||||
.oi-headphones:before { |
||||
content:'\e076'; |
||||
} |
||||
|
||||
.oi-heart:before { |
||||
content:'\e077'; |
||||
} |
||||
|
||||
.oi-home:before { |
||||
content:'\e078'; |
||||
} |
||||
|
||||
.oi-image:before { |
||||
content:'\e079'; |
||||
} |
||||
|
||||
.oi-inbox:before { |
||||
content:'\e07a'; |
||||
} |
||||
|
||||
.oi-infinity:before { |
||||
content:'\e07b'; |
||||
} |
||||
|
||||
.oi-info:before { |
||||
content:'\e07c'; |
||||
} |
||||
|
||||
.oi-italic:before { |
||||
content:'\e07d'; |
||||
} |
||||
|
||||
.oi-justify-center:before { |
||||
content:'\e07e'; |
||||
} |
||||
|
||||
.oi-justify-left:before { |
||||
content:'\e07f'; |
||||
} |
||||
|
||||
.oi-justify-right:before { |
||||
content:'\e080'; |
||||
} |
||||
|
||||
.oi-key:before { |
||||
content:'\e081'; |
||||
} |
||||
|
||||
.oi-laptop:before { |
||||
content:'\e082'; |
||||
} |
||||
|
||||
.oi-layers:before { |
||||
content:'\e083'; |
||||
} |
||||
|
||||
.oi-lightbulb:before { |
||||
content:'\e084'; |
||||
} |
||||
|
||||
.oi-link-broken:before { |
||||
content:'\e085'; |
||||
} |
||||
|
||||
.oi-link-intact:before { |
||||
content:'\e086'; |
||||
} |
||||
|
||||
.oi-list-rich:before { |
||||
content:'\e087'; |
||||
} |
||||
|
||||
.oi-list:before { |
||||
content:'\e088'; |
||||
} |
||||
|
||||
.oi-location:before { |
||||
content:'\e089'; |
||||
} |
||||
|
||||
.oi-lock-locked:before { |
||||
content:'\e08a'; |
||||
} |
||||
|
||||
.oi-lock-unlocked:before { |
||||
content:'\e08b'; |
||||
} |
||||
|
||||
.oi-loop-circular:before { |
||||
content:'\e08c'; |
||||
} |
||||
|
||||
.oi-loop-square:before { |
||||
content:'\e08d'; |
||||
} |
||||
|
||||
.oi-loop:before { |
||||
content:'\e08e'; |
||||
} |
||||
|
||||
.oi-magnifying-glass:before { |
||||
content:'\e08f'; |
||||
} |
||||
|
||||
.oi-map-marker:before { |
||||
content:'\e090'; |
||||
} |
||||
|
||||
.oi-map:before { |
||||
content:'\e091'; |
||||
} |
||||
|
||||
.oi-media-pause:before { |
||||
content:'\e092'; |
||||
} |
||||
|
||||
.oi-media-play:before { |
||||
content:'\e093'; |
||||
} |
||||
|
||||
.oi-media-record:before { |
||||
content:'\e094'; |
||||
} |
||||
|
||||
.oi-media-skip-backward:before { |
||||
content:'\e095'; |
||||
} |
||||
|
||||
.oi-media-skip-forward:before { |
||||
content:'\e096'; |
||||
} |
||||
|
||||
.oi-media-step-backward:before { |
||||
content:'\e097'; |
||||
} |
||||
|
||||
.oi-media-step-forward:before { |
||||
content:'\e098'; |
||||
} |
||||
|
||||
.oi-media-stop:before { |
||||
content:'\e099'; |
||||
} |
||||
|
||||
.oi-medical-cross:before { |
||||
content:'\e09a'; |
||||
} |
||||
|
||||
.oi-menu:before { |
||||
content:'\e09b'; |
||||
} |
||||
|
||||
.oi-microphone:before { |
||||
content:'\e09c'; |
||||
} |
||||
|
||||
.oi-minus:before { |
||||
content:'\e09d'; |
||||
} |
||||
|
||||
.oi-monitor:before { |
||||
content:'\e09e'; |
||||
} |
||||
|
||||
.oi-moon:before { |
||||
content:'\e09f'; |
||||
} |
||||
|
||||
.oi-move:before { |
||||
content:'\e0a0'; |
||||
} |
||||
|
||||
.oi-musical-note:before { |
||||
content:'\e0a1'; |
||||
} |
||||
|
||||
.oi-paperclip:before { |
||||
content:'\e0a2'; |
||||
} |
||||
|
||||
.oi-pencil:before { |
||||
content:'\e0a3'; |
||||
} |
||||
|
||||
.oi-people:before { |
||||
content:'\e0a4'; |
||||
} |
||||
|
||||
.oi-person:before { |
||||
content:'\e0a5'; |
||||
} |
||||
|
||||
.oi-phone:before { |
||||
content:'\e0a6'; |
||||
} |
||||
|
||||
.oi-pie-chart:before { |
||||
content:'\e0a7'; |
||||
} |
||||
|
||||
.oi-pin:before { |
||||
content:'\e0a8'; |
||||
} |
||||
|
||||
.oi-play-circle:before { |
||||
content:'\e0a9'; |
||||
} |
||||
|
||||
.oi-plus:before { |
||||
content:'\e0aa'; |
||||
} |
||||
|
||||
.oi-power-standby:before { |
||||
content:'\e0ab'; |
||||
} |
||||
|
||||
.oi-print:before { |
||||
content:'\e0ac'; |
||||
} |
||||
|
||||
.oi-project:before { |
||||
content:'\e0ad'; |
||||
} |
||||
|
||||
.oi-pulse:before { |
||||
content:'\e0ae'; |
||||
} |
||||
|
||||
.oi-puzzle-piece:before { |
||||
content:'\e0af'; |
||||
} |
||||
|
||||
.oi-question-mark:before { |
||||
content:'\e0b0'; |
||||
} |
||||
|
||||
.oi-rain:before { |
||||
content:'\e0b1'; |
||||
} |
||||
|
||||
.oi-random:before { |
||||
content:'\e0b2'; |
||||
} |
||||
|
||||
.oi-reload:before { |
||||
content:'\e0b3'; |
||||
} |
||||
|
||||
.oi-resize-both:before { |
||||
content:'\e0b4'; |
||||
} |
||||
|
||||
.oi-resize-height:before { |
||||
content:'\e0b5'; |
||||
} |
||||
|
||||
.oi-resize-width:before { |
||||
content:'\e0b6'; |
||||
} |
||||
|
||||
.oi-rss-alt:before { |
||||
content:'\e0b7'; |
||||
} |
||||
|
||||
.oi-rss:before { |
||||
content:'\e0b8'; |
||||
} |
||||
|
||||
.oi-script:before { |
||||
content:'\e0b9'; |
||||
} |
||||
|
||||
.oi-share-boxed:before { |
||||
content:'\e0ba'; |
||||
} |
||||
|
||||
.oi-share:before { |
||||
content:'\e0bb'; |
||||
} |
||||
|
||||
.oi-shield:before { |
||||
content:'\e0bc'; |
||||
} |
||||
|
||||
.oi-signal:before { |
||||
content:'\e0bd'; |
||||
} |
||||
|
||||
.oi-signpost:before { |
||||
content:'\e0be'; |
||||
} |
||||
|
||||
.oi-sort-ascending:before { |
||||
content:'\e0bf'; |
||||
} |
||||
|
||||
.oi-sort-descending:before { |
||||
content:'\e0c0'; |
||||
} |
||||
|
||||
.oi-spreadsheet:before { |
||||
content:'\e0c1'; |
||||
} |
||||
|
||||
.oi-star:before { |
||||
content:'\e0c2'; |
||||
} |
||||
|
||||
.oi-sun:before { |
||||
content:'\e0c3'; |
||||
} |
||||
|
||||
.oi-tablet:before { |
||||
content:'\e0c4'; |
||||
} |
||||
|
||||
.oi-tag:before { |
||||
content:'\e0c5'; |
||||
} |
||||
|
||||
.oi-tags:before { |
||||
content:'\e0c6'; |
||||
} |
||||
|
||||
.oi-target:before { |
||||
content:'\e0c7'; |
||||
} |
||||
|
||||
.oi-task:before { |
||||
content:'\e0c8'; |
||||
} |
||||
|
||||
.oi-terminal:before { |
||||
content:'\e0c9'; |
||||
} |
||||
|
||||
.oi-text:before { |
||||
content:'\e0ca'; |
||||
} |
||||
|
||||
.oi-thumb-down:before { |
||||
content:'\e0cb'; |
||||
} |
||||
|
||||
.oi-thumb-up:before { |
||||
content:'\e0cc'; |
||||
} |
||||
|
||||
.oi-timer:before { |
||||
content:'\e0cd'; |
||||
} |
||||
|
||||
.oi-transfer:before { |
||||
content:'\e0ce'; |
||||
} |
||||
|
||||
.oi-trash:before { |
||||
content:'\e0cf'; |
||||
} |
||||
|
||||
.oi-underline:before { |
||||
content:'\e0d0'; |
||||
} |
||||
|
||||
.oi-vertical-align-bottom:before { |
||||
content:'\e0d1'; |
||||
} |
||||
|
||||
.oi-vertical-align-center:before { |
||||
content:'\e0d2'; |
||||
} |
||||
|
||||
.oi-vertical-align-top:before { |
||||
content:'\e0d3'; |
||||
} |
||||
|
||||
.oi-video:before { |
||||
content:'\e0d4'; |
||||
} |
||||
|
||||
.oi-volume-high:before { |
||||
content:'\e0d5'; |
||||
} |
||||
|
||||
.oi-volume-low:before { |
||||
content:'\e0d6'; |
||||
} |
||||
|
||||
.oi-volume-off:before { |
||||
content:'\e0d7'; |
||||
} |
||||
|
||||
.oi-warning:before { |
||||
content:'\e0d8'; |
||||
} |
||||
|
||||
.oi-wifi:before { |
||||
content:'\e0d9'; |
||||
} |
||||
|
||||
.oi-wrench:before { |
||||
content:'\e0da'; |
||||
} |
||||
|
||||
.oi-x:before { |
||||
content:'\e0db'; |
||||
} |
||||
|
||||
.oi-yen:before { |
||||
content:'\e0dc'; |
||||
} |
||||
|
||||
.oi-zoom-in:before { |
||||
content:'\e0dd'; |
||||
} |
||||
|
||||
.oi-zoom-out:before { |
||||
content:'\e0de'; |
||||
} |
@ -0,0 +1,960 @@
@@ -0,0 +1,960 @@
|
||||
/* Bootstrap */ |
||||
|
||||
/* Override Bootstrap default variable */ |
||||
//@icon-font-path: "../fonts/"; |
||||
|
||||
@font-face { |
||||
font-family: 'Icons'; |
||||
src: ~"url('@{icon-font-path}open-iconic.eot')"; |
||||
src: ~"url('@{icon-font-path}open-iconic.eot?#iconic-sm') format('embedded-opentype')", |
||||
~"url('@{icon-font-path}open-iconic.woff') format('woff')", |
||||
~"url('@{icon-font-path}open-iconic.ttf') format('truetype')", |
||||
~"url('@{icon-font-path}open-iconic.svg#iconic-sm') format('svg')"; |
||||
font-weight: normal; |
||||
font-style: normal; |
||||
} |
||||
|
||||
// Catchall baseclass |
||||
.oi { |
||||
position: relative; |
||||
top: 1px; |
||||
display: inline-block; |
||||
font-family: 'Icons'; |
||||
font-style: normal; |
||||
font-weight: normal; |
||||
line-height: 1; |
||||
-webkit-font-smoothing: antialiased; |
||||
-moz-osx-font-smoothing: grayscale; |
||||
|
||||
&:empty:before { |
||||
width: 1em; |
||||
text-align: center; |
||||
box-sizing: content-box; |
||||
} |
||||
|
||||
&.oi-align-center:before { |
||||
text-align: center; |
||||
} |
||||
|
||||
&.oi-align-left:before { |
||||
text-align: left; |
||||
} |
||||
|
||||
&.oi-align-right:before { |
||||
text-align: right; |
||||
} |
||||
|
||||
|
||||
&.oi-flip-horizontal:before { |
||||
-webkit-transform: scale(-1, 1); |
||||
-ms-transform: scale(-1, 1); |
||||
transform: scale(-1, 1); |
||||
} |
||||
|
||||
&.oi-flip-vertical:before { |
||||
-webkit-transform: scale(1, -1); |
||||
-ms-transform: scale(-1, 1); |
||||
transform: scale(1, -1); |
||||
} |
||||
|
||||
&.oi-flip-horizontal-vertical:before { |
||||
-webkit-transform: scale(-1, -1); |
||||
-ms-transform: scale(-1, 1); |
||||
transform: scale(-1, -1); |
||||
} |
||||
} |
||||
|
||||
|
||||
|
||||
.oi-account-login:before { |
||||
content:"\e000"; |
||||
} |
||||
|
||||
.oi-account-logout:before { |
||||
content:"\e001"; |
||||
} |
||||
|
||||
.oi-action-redo:before { |
||||
content:"\e002"; |
||||
} |
||||
|
||||
.oi-action-undo:before { |
||||
content:"\e003"; |
||||
} |
||||
|
||||
.oi-align-center:before { |
||||
content:"\e004"; |
||||
} |
||||
|
||||
.oi-align-left:before { |
||||
content:"\e005"; |
||||
} |
||||
|
||||
.oi-align-right:before { |
||||
content:"\e006"; |
||||
} |
||||
|
||||
.oi-aperture:before { |
||||
content:"\e007"; |
||||
} |
||||
|
||||
.oi-arrow-bottom:before { |
||||
content:"\e008"; |
||||
} |
||||
|
||||
.oi-arrow-circle-bottom:before { |
||||
content:"\e009"; |
||||
} |
||||
|
||||
.oi-arrow-circle-left:before { |
||||
content:"\e00a"; |
||||
} |
||||
|
||||
.oi-arrow-circle-right:before { |
||||
content:"\e00b"; |
||||
} |
||||
|
||||
.oi-arrow-circle-top:before { |
||||
content:"\e00c"; |
||||
} |
||||
|
||||
.oi-arrow-left:before { |
||||
content:"\e00d"; |
||||
} |
||||
|
||||
.oi-arrow-right:before { |
||||
content:"\e00e"; |
||||
} |
||||
|
||||
.oi-arrow-thick-bottom:before { |
||||
content:"\e00f"; |
||||
} |
||||
|
||||
.oi-arrow-thick-left:before { |
||||
content:"\e010"; |
||||
} |
||||
|
||||
.oi-arrow-thick-right:before { |
||||
content:"\e011"; |
||||
} |
||||
|
||||
.oi-arrow-thick-top:before { |
||||
content:"\e012"; |
||||
} |
||||
|
||||
.oi-arrow-top:before { |
||||
content:"\e013"; |
||||
} |
||||
|
||||
.oi-audio-spectrum:before { |
||||
content:"\e014"; |
||||
} |
||||
|
||||
.oi-audio:before { |
||||
content:"\e015"; |
||||
} |
||||
|
||||
.oi-badge:before { |
||||
content:"\e016"; |
||||
} |
||||
|
||||
.oi-ban:before { |
||||
content:"\e017"; |
||||
} |
||||
|
||||
.oi-bar-chart:before { |
||||
content:"\e018"; |
||||
} |
||||
|
||||
.oi-basket:before { |
||||
content:"\e019"; |
||||
} |
||||
|
||||
.oi-battery-empty:before { |
||||
content:"\e01a"; |
||||
} |
||||
|
||||
.oi-battery-full:before { |
||||
content:"\e01b"; |
||||
} |
||||
|
||||
.oi-beaker:before { |
||||
content:"\e01c"; |
||||
} |
||||
|
||||
.oi-bell:before { |
||||
content:"\e01d"; |
||||
} |
||||
|
||||
.oi-bluetooth:before { |
||||
content:"\e01e"; |
||||
} |
||||
|
||||
.oi-bold:before { |
||||
content:"\e01f"; |
||||
} |
||||
|
||||
.oi-bolt:before { |
||||
content:"\e020"; |
||||
} |
||||
|
||||
.oi-book:before { |
||||
content:"\e021"; |
||||
} |
||||
|
||||
.oi-bookmark:before { |
||||
content:"\e022"; |
||||
} |
||||
|
||||
.oi-box:before { |
||||
content:"\e023"; |
||||
} |
||||
|
||||
.oi-briefcase:before { |
||||
content:"\e024"; |
||||
} |
||||
|
||||
.oi-british-pound:before { |
||||
content:"\e025"; |
||||
} |
||||
|
||||
.oi-browser:before { |
||||
content:"\e026"; |
||||
} |
||||
|
||||
.oi-brush:before { |
||||
content:"\e027"; |
||||
} |
||||
|
||||
.oi-bug:before { |
||||
content:"\e028"; |
||||
} |
||||
|
||||
.oi-bullhorn:before { |
||||
content:"\e029"; |
||||
} |
||||
|
||||
.oi-calculator:before { |
||||
content:"\e02a"; |
||||
} |
||||
|
||||
.oi-calendar:before { |
||||
content:"\e02b"; |
||||
} |
||||
|
||||
.oi-camera-slr:before { |
||||
content:"\e02c"; |
||||
} |
||||
|
||||
.oi-caret-bottom:before { |
||||
content:"\e02d"; |
||||
} |
||||
|
||||
.oi-caret-left:before { |
||||
content:"\e02e"; |
||||
} |
||||
|
||||
.oi-caret-right:before { |
||||
content:"\e02f"; |
||||
} |
||||
|
||||
.oi-caret-top:before { |
||||
content:"\e030"; |
||||
} |
||||
|
||||
.oi-cart:before { |
||||
content:"\e031"; |
||||
} |
||||
|
||||
.oi-chat:before { |
||||
content:"\e032"; |
||||
} |
||||
|
||||
.oi-check:before { |
||||
content:"\e033"; |
||||
} |
||||
|
||||
.oi-chevron-bottom:before { |
||||
content:"\e034"; |
||||
} |
||||
|
||||
.oi-chevron-left:before { |
||||
content:"\e035"; |
||||
} |
||||
|
||||
.oi-chevron-right:before { |
||||
content:"\e036"; |
||||
} |
||||
|
||||
.oi-chevron-top:before { |
||||
content:"\e037"; |
||||
} |
||||
|
||||
.oi-circle-check:before { |
||||
content:"\e038"; |
||||
} |
||||
|
||||
.oi-circle-x:before { |
||||
content:"\e039"; |
||||
} |
||||
|
||||
.oi-clipboard:before { |
||||
content:"\e03a"; |
||||
} |
||||
|
||||
.oi-clock:before { |
||||
content:"\e03b"; |
||||
} |
||||
|
||||
.oi-cloud-download:before { |
||||
content:"\e03c"; |
||||
} |
||||
|
||||
.oi-cloud-upload:before { |
||||
content:"\e03d"; |
||||
} |
||||
|
||||
.oi-cloud:before { |
||||
content:"\e03e"; |
||||
} |
||||
|
||||
.oi-cloudy:before { |
||||
content:"\e03f"; |
||||
} |
||||
|
||||
.oi-code:before { |
||||
content:"\e040"; |
||||
} |
||||
|
||||
.oi-cog:before { |
||||
content:"\e041"; |
||||
} |
||||
|
||||
.oi-collapse-down:before { |
||||
content:"\e042"; |
||||
} |
||||
|
||||
.oi-collapse-left:before { |
||||
content:"\e043"; |
||||
} |
||||
|
||||
.oi-collapse-right:before { |
||||
content:"\e044"; |
||||
} |
||||
|
||||
.oi-collapse-up:before { |
||||
content:"\e045"; |
||||
} |
||||
|
||||
.oi-command:before { |
||||
content:"\e046"; |
||||
} |
||||
|
||||
.oi-comment-square:before { |
||||
content:"\e047"; |
||||
} |
||||
|
||||
.oi-compass:before { |
||||
content:"\e048"; |
||||
} |
||||
|
||||
.oi-contrast:before { |
||||
content:"\e049"; |
||||
} |
||||
|
||||
.oi-copywriting:before { |
||||
content:"\e04a"; |
||||
} |
||||
|
||||
.oi-credit-card:before { |
||||
content:"\e04b"; |
||||
} |
||||
|
||||
.oi-crop:before { |
||||
content:"\e04c"; |
||||
} |
||||
|
||||
.oi-dashboard:before { |
||||
content:"\e04d"; |
||||
} |
||||
|
||||
.oi-data-transfer-download:before { |
||||
content:"\e04e"; |
||||
} |
||||
|
||||
.oi-data-transfer-upload:before { |
||||
content:"\e04f"; |
||||
} |
||||
|
||||
.oi-delete:before { |
||||
content:"\e050"; |
||||
} |
||||
|
||||
.oi-dial:before { |
||||
content:"\e051"; |
||||
} |
||||
|
||||
.oi-document:before { |
||||
content:"\e052"; |
||||
} |
||||
|
||||
.oi-dollar:before { |
||||
content:"\e053"; |
||||
} |
||||
|
||||
.oi-double-quote-sans-left:before { |
||||
content:"\e054"; |
||||
} |
||||
|
||||
.oi-double-quote-sans-right:before { |
||||
content:"\e055"; |
||||
} |
||||
|
||||
.oi-double-quote-serif-left:before { |
||||
content:"\e056"; |
||||
} |
||||
|
||||
.oi-double-quote-serif-right:before { |
||||
content:"\e057"; |
||||
} |
||||
|
||||
.oi-droplet:before { |
||||
content:"\e058"; |
||||
} |
||||
|
||||
.oi-eject:before { |
||||
content:"\e059"; |
||||
} |
||||
|
||||
.oi-elevator:before { |
||||
content:"\e05a"; |
||||
} |
||||
|
||||
.oi-ellipses:before { |
||||
content:"\e05b"; |
||||
} |
||||
|
||||
.oi-envelope-closed:before { |
||||
content:"\e05c"; |
||||
} |
||||
|
||||
.oi-envelope-open:before { |
||||
content:"\e05d"; |
||||
} |
||||
|
||||
.oi-euro:before { |
||||
content:"\e05e"; |
||||
} |
||||
|
||||
.oi-excerpt:before { |
||||
content:"\e05f"; |
||||
} |
||||
|
||||
.oi-expand-down:before { |
||||
content:"\e060"; |
||||
} |
||||
|
||||
.oi-expand-left:before { |
||||
content:"\e061"; |
||||
} |
||||
|
||||
.oi-expand-right:before { |
||||
content:"\e062"; |
||||
} |
||||
|
||||
.oi-expand-up:before { |
||||
content:"\e063"; |
||||
} |
||||
|
||||
.oi-external-link:before { |
||||
content:"\e064"; |
||||
} |
||||
|
||||
.oi-eye:before { |
||||
content:"\e065"; |
||||
} |
||||
|
||||
.oi-eyedropper:before { |
||||
content:"\e066"; |
||||
} |
||||
|
||||
.oi-file:before { |
||||
content:"\e067"; |
||||
} |
||||
|
||||
.oi-fire:before { |
||||
content:"\e068"; |
||||
} |
||||
|
||||
.oi-flag:before { |
||||
content:"\e069"; |
||||
} |
||||
|
||||
.oi-flash:before { |
||||
content:"\e06a"; |
||||
} |
||||
|
||||
.oi-folder:before { |
||||
content:"\e06b"; |
||||
} |
||||
|
||||
.oi-fork:before { |
||||
content:"\e06c"; |
||||
} |
||||
|
||||
.oi-fullscreen-enter:before { |
||||
content:"\e06d"; |
||||
} |
||||
|
||||
.oi-fullscreen-exit:before { |
||||
content:"\e06e"; |
||||
} |
||||
|
||||
.oi-globe:before { |
||||
content:"\e06f"; |
||||
} |
||||
|
||||
.oi-graph:before { |
||||
content:"\e070"; |
||||
} |
||||
|
||||
.oi-grid-four-up:before { |
||||
content:"\e071"; |
||||
} |
||||
|
||||
.oi-grid-three-up:before { |
||||
content:"\e072"; |
||||
} |
||||
|
||||
.oi-grid-two-up:before { |
||||
content:"\e073"; |
||||
} |
||||
|
||||
.oi-hard-drive:before { |
||||
content:"\e074"; |
||||
} |
||||
|
||||
.oi-header:before { |
||||
content:"\e075"; |
||||
} |
||||
|
||||
.oi-headphones:before { |
||||
content:"\e076"; |
||||
} |
||||
|
||||
.oi-heart:before { |
||||
content:"\e077"; |
||||
} |
||||
|
||||
.oi-home:before { |
||||
content:"\e078"; |
||||
} |
||||
|
||||
.oi-image:before { |
||||
content:"\e079"; |
||||
} |
||||
|
||||
.oi-inbox:before { |
||||
content:"\e07a"; |
||||
} |
||||
|
||||
.oi-infinity:before { |
||||
content:"\e07b"; |
||||
} |
||||
|
||||
.oi-info:before { |
||||
content:"\e07c"; |
||||
} |
||||
|
||||
.oi-italic:before { |
||||
content:"\e07d"; |
||||
} |
||||
|
||||
.oi-justify-center:before { |
||||
content:"\e07e"; |
||||
} |
||||
|
||||
.oi-justify-left:before { |
||||
content:"\e07f"; |
||||
} |
||||
|
||||
.oi-justify-right:before { |
||||
content:"\e080"; |
||||
} |
||||
|
||||
.oi-key:before { |
||||
content:"\e081"; |
||||
} |
||||
|
||||
.oi-laptop:before { |
||||
content:"\e082"; |
||||
} |
||||
|
||||
.oi-layers:before { |
||||
content:"\e083"; |
||||
} |
||||
|
||||
.oi-lightbulb:before { |
||||
content:"\e084"; |
||||
} |
||||
|
||||
.oi-link-broken:before { |
||||
content:"\e085"; |
||||
} |
||||
|
||||
.oi-link-intact:before { |
||||
content:"\e086"; |
||||
} |
||||
|
||||
.oi-list-rich:before { |
||||
content:"\e087"; |
||||
} |
||||
|
||||
.oi-list:before { |
||||
content:"\e088"; |
||||
} |
||||
|
||||
.oi-location:before { |
||||
content:"\e089"; |
||||
} |
||||
|
||||
.oi-lock-locked:before { |
||||
content:"\e08a"; |
||||
} |
||||
|
||||
.oi-lock-unlocked:before { |
||||
content:"\e08b"; |
||||
} |
||||
|
||||
.oi-loop-circular:before { |
||||
content:"\e08c"; |
||||
} |
||||
|
||||
.oi-loop-square:before { |
||||
content:"\e08d"; |
||||
} |
||||
|
||||
.oi-loop:before { |
||||
content:"\e08e"; |
||||
} |
||||
|
||||
.oi-magnifying-glass:before { |
||||
content:"\e08f"; |
||||
} |
||||
|
||||
.oi-map-marker:before { |
||||
content:"\e090"; |
||||
} |
||||
|
||||
.oi-map:before { |
||||
content:"\e091"; |
||||
} |
||||
|
||||
.oi-media-pause:before { |
||||
content:"\e092"; |
||||
} |
||||
|
||||
.oi-media-play:before { |
||||
content:"\e093"; |
||||
} |
||||
|
||||
.oi-media-record:before { |
||||
content:"\e094"; |
||||
} |
||||
|
||||
.oi-media-skip-backward:before { |
||||
content:"\e095"; |
||||
} |
||||
|
||||
.oi-media-skip-forward:before { |
||||
content:"\e096"; |
||||
} |
||||
|
||||
.oi-media-step-backward:before { |
||||
content:"\e097"; |
||||
} |
||||
|
||||
.oi-media-step-forward:before { |
||||
content:"\e098"; |
||||
} |
||||
|
||||
.oi-media-stop:before { |
||||
content:"\e099"; |
||||
} |
||||
|
||||
.oi-medical-cross:before { |
||||
content:"\e09a"; |
||||
} |
||||
|
||||
.oi-menu:before { |
||||
content:"\e09b"; |
||||
} |
||||
|
||||
.oi-microphone:before { |
||||
content:"\e09c"; |
||||
} |
||||
|
||||
.oi-minus:before { |
||||
content:"\e09d"; |
||||
} |
||||
|
||||
.oi-monitor:before { |
||||
content:"\e09e"; |
||||
} |
||||
|
||||
.oi-moon:before { |
||||
content:"\e09f"; |
||||
} |
||||
|
||||
.oi-move:before { |
||||
content:"\e0a0"; |
||||
} |
||||
|
||||
.oi-musical-note:before { |
||||
content:"\e0a1"; |
||||
} |
||||
|
||||
.oi-paperclip:before { |
||||
content:"\e0a2"; |
||||
} |
||||
|
||||
.oi-pencil:before { |
||||
content:"\e0a3"; |
||||
} |
||||
|
||||
.oi-people:before { |
||||
content:"\e0a4"; |
||||
} |
||||
|
||||
.oi-person:before { |
||||
content:"\e0a5"; |
||||
} |
||||
|
||||
.oi-phone:before { |
||||
content:"\e0a6"; |
||||
} |
||||
|
||||
.oi-pie-chart:before { |
||||
content:"\e0a7"; |
||||
} |
||||
|
||||
.oi-pin:before { |
||||
content:"\e0a8"; |
||||
} |
||||
|
||||
.oi-play-circle:before { |
||||
content:"\e0a9"; |
||||
} |
||||
|
||||
.oi-plus:before { |
||||
content:"\e0aa"; |
||||
} |
||||
|
||||
.oi-power-standby:before { |
||||
content:"\e0ab"; |
||||
} |
||||
|
||||
.oi-print:before { |
||||
content:"\e0ac"; |
||||
} |
||||
|
||||
.oi-project:before { |
||||
content:"\e0ad"; |
||||
} |
||||
|
||||
.oi-pulse:before { |
||||
content:"\e0ae"; |
||||
} |
||||
|
||||
.oi-puzzle-piece:before { |
||||
content:"\e0af"; |
||||
} |
||||
|
||||
.oi-question-mark:before { |
||||
content:"\e0b0"; |
||||
} |
||||
|
||||
.oi-rain:before { |
||||
content:"\e0b1"; |
||||
} |
||||
|
||||
.oi-random:before { |
||||
content:"\e0b2"; |
||||
} |
||||
|
||||
.oi-reload:before { |
||||
content:"\e0b3"; |
||||
} |
||||
|
||||
.oi-resize-both:before { |
||||
content:"\e0b4"; |
||||
} |
||||
|
||||
.oi-resize-height:before { |
||||
content:"\e0b5"; |
||||
} |
||||
|
||||
.oi-resize-width:before { |
||||
content:"\e0b6"; |
||||
} |
||||
|
||||
.oi-rss-alt:before { |
||||
content:"\e0b7"; |
||||
} |
||||
|
||||
.oi-rss:before { |
||||
content:"\e0b8"; |
||||
} |
||||
|
||||
.oi-script:before { |
||||
content:"\e0b9"; |
||||
} |
||||
|
||||
.oi-share-boxed:before { |
||||
content:"\e0ba"; |
||||
} |
||||
|
||||
.oi-share:before { |
||||
content:"\e0bb"; |
||||
} |
||||
|
||||
.oi-shield:before { |
||||
content:"\e0bc"; |
||||
} |
||||
|
||||
.oi-signal:before { |
||||
content:"\e0bd"; |
||||
} |
||||
|
||||
.oi-signpost:before { |
||||
content:"\e0be"; |
||||
} |
||||
|
||||
.oi-sort-ascending:before { |
||||
content:"\e0bf"; |
||||
} |
||||
|
||||
.oi-sort-descending:before { |
||||
content:"\e0c0"; |
||||
} |
||||
|
||||
.oi-spreadsheet:before { |
||||
content:"\e0c1"; |
||||
} |
||||
|
||||
.oi-star:before { |
||||
content:"\e0c2"; |
||||
} |
||||
|
||||
.oi-sun:before { |
||||
content:"\e0c3"; |
||||
} |
||||
|
||||
.oi-tablet:before { |
||||
content:"\e0c4"; |
||||
} |
||||
|
||||
.oi-tag:before { |
||||
content:"\e0c5"; |
||||
} |
||||
|
||||
.oi-tags:before { |
||||
content:"\e0c6"; |
||||
} |
||||
|
||||
.oi-target:before { |
||||
content:"\e0c7"; |
||||
} |
||||
|
||||
.oi-task:before { |
||||
content:"\e0c8"; |
||||
} |
||||
|
||||
.oi-terminal:before { |
||||
content:"\e0c9"; |
||||
} |
||||
|
||||
.oi-text:before { |
||||
content:"\e0ca"; |
||||
} |
||||
|
||||
.oi-thumb-down:before { |
||||
content:"\e0cb"; |
||||
} |
||||
|
||||
.oi-thumb-up:before { |
||||
content:"\e0cc"; |
||||
} |
||||
|
||||
.oi-timer:before { |
||||
content:"\e0cd"; |
||||
} |
||||
|
||||
.oi-transfer:before { |
||||
content:"\e0ce"; |
||||
} |
||||
|
||||
.oi-trash:before { |
||||
content:"\e0cf"; |
||||
} |
||||
|
||||
.oi-underline:before { |
||||
content:"\e0d0"; |
||||
} |
||||
|
||||
.oi-vertical-align-bottom:before { |
||||
content:"\e0d1"; |
||||
} |
||||
|
||||
.oi-vertical-align-center:before { |
||||
content:"\e0d2"; |
||||
} |
||||
|
||||
.oi-vertical-align-top:before { |
||||
content:"\e0d3"; |
||||
} |
||||
|
||||
.oi-video:before { |
||||
content:"\e0d4"; |
||||
} |
||||
|
||||
.oi-volume-high:before { |
||||
content:"\e0d5"; |
||||
} |
||||
|
||||
.oi-volume-low:before { |
||||
content:"\e0d6"; |
||||
} |
||||
|
||||
.oi-volume-off:before { |
||||
content:"\e0d7"; |
||||
} |
||||
|
||||
.oi-warning:before { |
||||
content:"\e0d8"; |
||||
} |
||||
|
||||
.oi-wifi:before { |
||||
content:"\e0d9"; |
||||
} |
||||
|
||||
.oi-wrench:before { |
||||
content:"\e0da"; |
||||
} |
||||
|
||||
.oi-x:before { |
||||
content:"\e0db"; |
||||
} |
||||
|
||||
.oi-yen:before { |
||||
content:"\e0dc"; |
||||
} |
||||
|
||||
.oi-zoom-in:before { |
||||
content:"\e0dd"; |
||||
} |
||||
|
||||
.oi-zoom-out:before { |
||||
content:"\e0de"; |
||||
} |
||||
|
@ -0,0 +1,958 @@
@@ -0,0 +1,958 @@
|
||||
/* Bootstrap */ |
||||
|
||||
/* Override Bootstrap default variable */ |
||||
$icon-font-path: '../fonts/' !default; |
||||
|
||||
@font-face { |
||||
font-family: 'Icons'; |
||||
src: url('#{$icon-font-path}open-iconic.eot'); |
||||
src: url('#{$icon-font-path}open-iconic.eot?#iconic-sm') format('embedded-opentype'), url('#{$icon-font-path}open-iconic.woff') format('woff'), url('#{$icon-font-path}open-iconic.ttf') format('truetype'), url('#{$icon-font-path}open-iconic.svg#iconic-sm') format('svg'); |
||||
font-weight: normal; |
||||
font-style: normal; |
||||
} |
||||
|
||||
// Catchall baseclass |
||||
.oi { |
||||
position: relative; |
||||
top: 1px; |
||||
display: inline-block; |
||||
font-family: 'Icons'; |
||||
font-style: normal; |
||||
font-weight: normal; |
||||
line-height: 1; |
||||
-webkit-font-smoothing: antialiased; |
||||
-moz-osx-font-smoothing: grayscale; |
||||
|
||||
|
||||
&:empty:before { |
||||
width: 1em; |
||||
text-align: center; |
||||
box-sizing: content-box; |
||||
} |
||||
|
||||
&.oi-align-center:before { |
||||
text-align: center; |
||||
} |
||||
|
||||
&.oi-align-left:before { |
||||
text-align: left; |
||||
} |
||||
|
||||
&.oi-align-right:before { |
||||
text-align: right; |
||||
} |
||||
|
||||
|
||||
&.oi-flip-horizontal:before { |
||||
-webkit-transform: scale(-1, 1); |
||||
-ms-transform: scale(-1, 1); |
||||
transform: scale(-1, 1); |
||||
} |
||||
|
||||
&.oi-flip-vertical:before { |
||||
-webkit-transform: scale(1, -1); |
||||
-ms-transform: scale(-1, 1); |
||||
transform: scale(1, -1); |
||||
} |
||||
|
||||
&.oi-flip-horizontal-vertical:before { |
||||
-webkit-transform: scale(-1, -1); |
||||
-ms-transform: scale(-1, 1); |
||||
transform: scale(-1, -1); |
||||
} |
||||
} |
||||
|
||||
|
||||
|
||||
.oi-account-login:before { |
||||
content:'\e000'; |
||||
} |
||||
|
||||
.oi-account-logout:before { |
||||
content:'\e001'; |
||||
} |
||||
|
||||
.oi-action-redo:before { |
||||
content:'\e002'; |
||||
} |
||||
|
||||
.oi-action-undo:before { |
||||
content:'\e003'; |
||||
} |
||||
|
||||
.oi-align-center:before { |
||||
content:'\e004'; |
||||
} |
||||
|
||||
.oi-align-left:before { |
||||
content:'\e005'; |
||||
} |
||||
|
||||
.oi-align-right:before { |
||||
content:'\e006'; |
||||
} |
||||
|
||||
.oi-aperture:before { |
||||
content:'\e007'; |
||||
} |
||||
|
||||
.oi-arrow-bottom:before { |
||||
content:'\e008'; |
||||
} |
||||
|
||||
.oi-arrow-circle-bottom:before { |
||||
content:'\e009'; |
||||
} |
||||
|
||||
.oi-arrow-circle-left:before { |
||||
content:'\e00a'; |
||||
} |
||||
|
||||
.oi-arrow-circle-right:before { |
||||
content:'\e00b'; |
||||
} |
||||
|
||||
.oi-arrow-circle-top:before { |
||||
content:'\e00c'; |
||||
} |
||||
|
||||
.oi-arrow-left:before { |
||||
content:'\e00d'; |
||||
} |
||||
|
||||
.oi-arrow-right:before { |
||||
content:'\e00e'; |
||||
} |
||||
|
||||
.oi-arrow-thick-bottom:before { |
||||
content:'\e00f'; |
||||
} |
||||
|
||||
.oi-arrow-thick-left:before { |
||||
content:'\e010'; |
||||
} |
||||
|
||||
.oi-arrow-thick-right:before { |
||||
content:'\e011'; |
||||
} |
||||
|
||||
.oi-arrow-thick-top:before { |
||||
content:'\e012'; |
||||
} |
||||
|
||||
.oi-arrow-top:before { |
||||
content:'\e013'; |
||||
} |
||||
|
||||
.oi-audio-spectrum:before { |
||||
content:'\e014'; |
||||
} |
||||
|
||||
.oi-audio:before { |
||||
content:'\e015'; |
||||
} |
||||
|
||||
.oi-badge:before { |
||||
content:'\e016'; |
||||
} |
||||
|
||||
.oi-ban:before { |
||||
content:'\e017'; |
||||
} |
||||
|
||||
.oi-bar-chart:before { |
||||
content:'\e018'; |
||||
} |
||||
|
||||
.oi-basket:before { |
||||
content:'\e019'; |
||||
} |
||||
|
||||
.oi-battery-empty:before { |
||||
content:'\e01a'; |
||||
} |
||||
|
||||
.oi-battery-full:before { |
||||
content:'\e01b'; |
||||
} |
||||
|
||||
.oi-beaker:before { |
||||
content:'\e01c'; |
||||
} |
||||
|
||||
.oi-bell:before { |
||||
content:'\e01d'; |
||||
} |
||||
|
||||
.oi-bluetooth:before { |
||||
content:'\e01e'; |
||||
} |
||||
|
||||
.oi-bold:before { |
||||
content:'\e01f'; |
||||
} |
||||
|
||||
.oi-bolt:before { |
||||
content:'\e020'; |
||||
} |
||||
|
||||
.oi-book:before { |
||||
content:'\e021'; |
||||
} |
||||
|
||||
.oi-bookmark:before { |
||||
content:'\e022'; |
||||
} |
||||
|
||||
.oi-box:before { |
||||
content:'\e023'; |
||||
} |
||||
|
||||
.oi-briefcase:before { |
||||
content:'\e024'; |
||||
} |
||||
|
||||
.oi-british-pound:before { |
||||
content:'\e025'; |
||||
} |
||||
|
||||
.oi-browser:before { |
||||
content:'\e026'; |
||||
} |
||||
|
||||
.oi-brush:before { |
||||
content:'\e027'; |
||||
} |
||||
|
||||
.oi-bug:before { |
||||
content:'\e028'; |
||||
} |
||||
|
||||
.oi-bullhorn:before { |
||||
content:'\e029'; |
||||
} |
||||
|
||||
.oi-calculator:before { |
||||
content:'\e02a'; |
||||
} |
||||
|
||||
.oi-calendar:before { |
||||
content:'\e02b'; |
||||
} |
||||
|
||||
.oi-camera-slr:before { |
||||
content:'\e02c'; |
||||
} |
||||
|
||||
.oi-caret-bottom:before { |
||||
content:'\e02d'; |
||||
} |
||||
|
||||
.oi-caret-left:before { |
||||
content:'\e02e'; |
||||
} |
||||
|
||||
.oi-caret-right:before { |
||||
content:'\e02f'; |
||||
} |
||||
|
||||
.oi-caret-top:before { |
||||
content:'\e030'; |
||||
} |
||||
|
||||
.oi-cart:before { |
||||
content:'\e031'; |
||||
} |
||||
|
||||
.oi-chat:before { |
||||
content:'\e032'; |
||||
} |
||||
|
||||
.oi-check:before { |
||||
content:'\e033'; |
||||
} |
||||
|
||||
.oi-chevron-bottom:before { |
||||
content:'\e034'; |
||||
} |
||||
|
||||
.oi-chevron-left:before { |
||||
content:'\e035'; |
||||
} |
||||
|
||||
.oi-chevron-right:before { |
||||
content:'\e036'; |
||||
} |
||||
|
||||
.oi-chevron-top:before { |
||||
content:'\e037'; |
||||
} |
||||
|
||||
.oi-circle-check:before { |
||||
content:'\e038'; |
||||
} |
||||
|
||||
.oi-circle-x:before { |
||||
content:'\e039'; |
||||
} |
||||
|
||||
.oi-clipboard:before { |
||||
content:'\e03a'; |
||||
} |
||||
|
||||
.oi-clock:before { |
||||
content:'\e03b'; |
||||
} |
||||
|
||||
.oi-cloud-download:before { |
||||
content:'\e03c'; |
||||
} |
||||
|
||||
.oi-cloud-upload:before { |
||||
content:'\e03d'; |
||||
} |
||||
|
||||
.oi-cloud:before { |
||||
content:'\e03e'; |
||||
} |
||||
|
||||
.oi-cloudy:before { |
||||
content:'\e03f'; |
||||
} |
||||
|
||||
.oi-code:before { |
||||
content:'\e040'; |
||||
} |
||||
|
||||
.oi-cog:before { |
||||
content:'\e041'; |
||||
} |
||||
|
||||
.oi-collapse-down:before { |
||||
content:'\e042'; |
||||
} |
||||
|
||||
.oi-collapse-left:before { |
||||
content:'\e043'; |
||||
} |
||||
|
||||
.oi-collapse-right:before { |
||||
content:'\e044'; |
||||
} |
||||
|
||||
.oi-collapse-up:before { |
||||
content:'\e045'; |
||||
} |
||||
|
||||
.oi-command:before { |
||||
content:'\e046'; |
||||
} |
||||
|
||||
.oi-comment-square:before { |
||||
content:'\e047'; |
||||
} |
||||
|
||||
.oi-compass:before { |
||||
content:'\e048'; |
||||
} |
||||
|
||||
.oi-contrast:before { |
||||
content:'\e049'; |
||||
} |
||||
|
||||
.oi-copywriting:before { |
||||
content:'\e04a'; |
||||
} |
||||
|
||||
.oi-credit-card:before { |
||||
content:'\e04b'; |
||||
} |
||||
|
||||
.oi-crop:before { |
||||
content:'\e04c'; |
||||
} |
||||
|
||||
.oi-dashboard:before { |
||||
content:'\e04d'; |
||||
} |
||||
|
||||
.oi-data-transfer-download:before { |
||||
content:'\e04e'; |
||||
} |
||||
|
||||
.oi-data-transfer-upload:before { |
||||
content:'\e04f'; |
||||
} |
||||
|
||||
.oi-delete:before { |
||||
content:'\e050'; |
||||
} |
||||
|
||||
.oi-dial:before { |
||||
content:'\e051'; |
||||
} |
||||
|
||||
.oi-document:before { |
||||
content:'\e052'; |
||||
} |
||||
|
||||
.oi-dollar:before { |
||||
content:'\e053'; |
||||
} |
||||
|
||||
.oi-double-quote-sans-left:before { |
||||
content:'\e054'; |
||||
} |
||||
|
||||
.oi-double-quote-sans-right:before { |
||||
content:'\e055'; |
||||
} |
||||
|
||||
.oi-double-quote-serif-left:before { |
||||
content:'\e056'; |
||||
} |
||||
|
||||
.oi-double-quote-serif-right:before { |
||||
content:'\e057'; |
||||
} |
||||
|
||||
.oi-droplet:before { |
||||
content:'\e058'; |
||||
} |
||||
|
||||
.oi-eject:before { |
||||
content:'\e059'; |
||||
} |
||||
|
||||
.oi-elevator:before { |
||||
content:'\e05a'; |
||||
} |
||||
|
||||
.oi-ellipses:before { |
||||
content:'\e05b'; |
||||
} |
||||
|
||||
.oi-envelope-closed:before { |
||||
content:'\e05c'; |
||||
} |
||||
|
||||
.oi-envelope-open:before { |
||||
content:'\e05d'; |
||||
} |
||||
|
||||
.oi-euro:before { |
||||
content:'\e05e'; |
||||
} |
||||
|
||||
.oi-excerpt:before { |
||||
content:'\e05f'; |
||||
} |
||||
|
||||
.oi-expand-down:before { |
||||
content:'\e060'; |
||||
} |
||||
|
||||
.oi-expand-left:before { |
||||
content:'\e061'; |
||||
} |
||||
|
||||
.oi-expand-right:before { |
||||
content:'\e062'; |
||||
} |
||||
|
||||
.oi-expand-up:before { |
||||
content:'\e063'; |
||||
} |
||||
|
||||
.oi-external-link:before { |
||||
content:'\e064'; |
||||
} |
||||
|
||||
.oi-eye:before { |
||||
content:'\e065'; |
||||
} |
||||
|
||||
.oi-eyedropper:before { |
||||
content:'\e066'; |
||||
} |
||||
|
||||
.oi-file:before { |
||||
content:'\e067'; |
||||
} |
||||
|
||||
.oi-fire:before { |
||||
content:'\e068'; |
||||
} |
||||
|
||||
.oi-flag:before { |
||||
content:'\e069'; |
||||
} |
||||
|
||||
.oi-flash:before { |
||||
content:'\e06a'; |
||||
} |
||||
|
||||
.oi-folder:before { |
||||
content:'\e06b'; |
||||
} |
||||
|
||||
.oi-fork:before { |
||||
content:'\e06c'; |
||||
} |
||||
|
||||
.oi-fullscreen-enter:before { |
||||
content:'\e06d'; |
||||
} |
||||
|
||||
.oi-fullscreen-exit:before { |
||||
content:'\e06e'; |
||||
} |
||||
|
||||
.oi-globe:before { |
||||
content:'\e06f'; |
||||
} |
||||
|
||||
.oi-graph:before { |
||||
content:'\e070'; |
||||
} |
||||
|
||||
.oi-grid-four-up:before { |
||||
content:'\e071'; |
||||
} |
||||
|
||||
.oi-grid-three-up:before { |
||||
content:'\e072'; |
||||
} |
||||
|
||||
.oi-grid-two-up:before { |
||||
content:'\e073'; |
||||
} |
||||
|
||||
.oi-hard-drive:before { |
||||
content:'\e074'; |
||||
} |
||||
|
||||
.oi-header:before { |
||||
content:'\e075'; |
||||
} |
||||
|
||||
.oi-headphones:before { |
||||
content:'\e076'; |
||||
} |
||||
|
||||
.oi-heart:before { |
||||
content:'\e077'; |
||||
} |
||||
|
||||
.oi-home:before { |
||||
content:'\e078'; |
||||
} |
||||
|
||||
.oi-image:before { |
||||
content:'\e079'; |
||||
} |
||||
|
||||
.oi-inbox:before { |
||||
content:'\e07a'; |
||||
} |
||||
|
||||
.oi-infinity:before { |
||||
content:'\e07b'; |
||||
} |
||||
|
||||
.oi-info:before { |
||||
content:'\e07c'; |
||||
} |
||||
|
||||
.oi-italic:before { |
||||
content:'\e07d'; |
||||
} |
||||
|
||||
.oi-justify-center:before { |
||||
content:'\e07e'; |
||||
} |
||||
|
||||
.oi-justify-left:before { |
||||
content:'\e07f'; |
||||
} |
||||
|
||||
.oi-justify-right:before { |
||||
content:'\e080'; |
||||
} |
||||
|
||||
.oi-key:before { |
||||
content:'\e081'; |
||||
} |
||||
|
||||
.oi-laptop:before { |
||||
content:'\e082'; |
||||
} |
||||
|
||||
.oi-layers:before { |
||||
content:'\e083'; |
||||
} |
||||
|
||||
.oi-lightbulb:before { |
||||
content:'\e084'; |
||||
} |
||||
|
||||
.oi-link-broken:before { |
||||
content:'\e085'; |
||||
} |
||||
|
||||
.oi-link-intact:before { |
||||
content:'\e086'; |
||||
} |
||||
|
||||
.oi-list-rich:before { |
||||
content:'\e087'; |
||||
} |
||||
|
||||
.oi-list:before { |
||||
content:'\e088'; |
||||
} |
||||
|
||||
.oi-location:before { |
||||
content:'\e089'; |
||||
} |
||||
|
||||
.oi-lock-locked:before { |
||||
content:'\e08a'; |
||||
} |
||||
|
||||
.oi-lock-unlocked:before { |
||||
content:'\e08b'; |
||||
} |
||||
|
||||
.oi-loop-circular:before { |
||||
content:'\e08c'; |
||||
} |
||||
|
||||
.oi-loop-square:before { |
||||
content:'\e08d'; |
||||
} |
||||
|
||||
.oi-loop:before { |
||||
content:'\e08e'; |
||||
} |
||||
|
||||
.oi-magnifying-glass:before { |
||||
content:'\e08f'; |
||||
} |
||||
|
||||
.oi-map-marker:before { |
||||
content:'\e090'; |
||||
} |
||||
|
||||
.oi-map:before { |
||||
content:'\e091'; |
||||
} |
||||
|
||||
.oi-media-pause:before { |
||||
content:'\e092'; |
||||
} |
||||
|
||||
.oi-media-play:before { |
||||
content:'\e093'; |
||||
} |
||||
|
||||
.oi-media-record:before { |
||||
content:'\e094'; |
||||
} |
||||
|
||||
.oi-media-skip-backward:before { |
||||
content:'\e095'; |
||||
} |
||||
|
||||
.oi-media-skip-forward:before { |
||||
content:'\e096'; |
||||
} |
||||
|
||||
.oi-media-step-backward:before { |
||||
content:'\e097'; |
||||
} |
||||
|
||||
.oi-media-step-forward:before { |
||||
content:'\e098'; |
||||
} |
||||
|
||||
.oi-media-stop:before { |
||||
content:'\e099'; |
||||
} |
||||
|
||||
.oi-medical-cross:before { |
||||
content:'\e09a'; |
||||
} |
||||
|
||||
.oi-menu:before { |
||||
content:'\e09b'; |
||||
} |
||||
|
||||
.oi-microphone:before { |
||||
content:'\e09c'; |
||||
} |
||||
|
||||
.oi-minus:before { |
||||
content:'\e09d'; |
||||
} |
||||
|
||||
.oi-monitor:before { |
||||
content:'\e09e'; |
||||
} |
||||
|
||||
.oi-moon:before { |
||||
content:'\e09f'; |
||||
} |
||||
|
||||
.oi-move:before { |
||||
content:'\e0a0'; |
||||
} |
||||
|
||||
.oi-musical-note:before { |
||||
content:'\e0a1'; |
||||
} |
||||
|
||||
.oi-paperclip:before { |
||||
content:'\e0a2'; |
||||
} |
||||
|
||||
.oi-pencil:before { |
||||
content:'\e0a3'; |
||||
} |
||||
|
||||
.oi-people:before { |
||||
content:'\e0a4'; |
||||
} |
||||
|
||||
.oi-person:before { |
||||
content:'\e0a5'; |
||||
} |
||||
|
||||
.oi-phone:before { |
||||
content:'\e0a6'; |
||||
} |
||||
|
||||
.oi-pie-chart:before { |
||||
content:'\e0a7'; |
||||
} |
||||
|
||||
.oi-pin:before { |
||||
content:'\e0a8'; |
||||
} |
||||
|
||||
.oi-play-circle:before { |
||||
content:'\e0a9'; |
||||
} |
||||
|
||||
.oi-plus:before { |
||||
content:'\e0aa'; |
||||
} |
||||
|
||||
.oi-power-standby:before { |
||||
content:'\e0ab'; |
||||
} |
||||
|
||||
.oi-print:before { |
||||
content:'\e0ac'; |
||||
} |
||||
|
||||
.oi-project:before { |
||||
content:'\e0ad'; |
||||
} |
||||
|
||||
.oi-pulse:before { |
||||
content:'\e0ae'; |
||||
} |
||||
|
||||
.oi-puzzle-piece:before { |
||||
content:'\e0af'; |
||||
} |
||||
|
||||
.oi-question-mark:before { |
||||
content:'\e0b0'; |
||||
} |
||||
|
||||
.oi-rain:before { |
||||
content:'\e0b1'; |
||||
} |
||||
|
||||
.oi-random:before { |
||||
content:'\e0b2'; |
||||
} |
||||
|
||||
.oi-reload:before { |
||||
content:'\e0b3'; |
||||
} |
||||
|
||||
.oi-resize-both:before { |
||||
content:'\e0b4'; |
||||
} |
||||
|
||||
.oi-resize-height:before { |
||||
content:'\e0b5'; |
||||
} |
||||
|
||||
.oi-resize-width:before { |
||||
content:'\e0b6'; |
||||
} |
||||
|
||||
.oi-rss-alt:before { |
||||
content:'\e0b7'; |
||||
} |
||||
|
||||
.oi-rss:before { |
||||
content:'\e0b8'; |
||||
} |
||||
|
||||
.oi-script:before { |
||||
content:'\e0b9'; |
||||
} |
||||
|
||||
.oi-share-boxed:before { |
||||
content:'\e0ba'; |
||||
} |
||||
|
||||
.oi-share:before { |
||||
content:'\e0bb'; |
||||
} |
||||
|
||||
.oi-shield:before { |
||||
content:'\e0bc'; |
||||
} |
||||
|
||||
.oi-signal:before { |
||||
content:'\e0bd'; |
||||
} |
||||
|
||||
.oi-signpost:before { |
||||
content:'\e0be'; |
||||
} |
||||
|
||||
.oi-sort-ascending:before { |
||||
content:'\e0bf'; |
||||
} |
||||
|
||||
.oi-sort-descending:before { |
||||
content:'\e0c0'; |
||||
} |
||||
|
||||
.oi-spreadsheet:before { |
||||
content:'\e0c1'; |
||||
} |
||||
|
||||
.oi-star:before { |
||||
content:'\e0c2'; |
||||
} |
||||
|
||||
.oi-sun:before { |
||||
content:'\e0c3'; |
||||
} |
||||
|
||||
.oi-tablet:before { |
||||
content:'\e0c4'; |
||||
} |
||||
|
||||
.oi-tag:before { |
||||
content:'\e0c5'; |
||||
} |
||||
|
||||
.oi-tags:before { |
||||
content:'\e0c6'; |
||||
} |
||||
|
||||
.oi-target:before { |
||||
content:'\e0c7'; |
||||
} |
||||
|
||||
.oi-task:before { |
||||
content:'\e0c8'; |
||||
} |
||||
|
||||
.oi-terminal:before { |
||||
content:'\e0c9'; |
||||
} |
||||
|
||||
.oi-text:before { |
||||
content:'\e0ca'; |
||||
} |
||||
|
||||
.oi-thumb-down:before { |
||||
content:'\e0cb'; |
||||
} |
||||
|
||||
.oi-thumb-up:before { |
||||
content:'\e0cc'; |
||||
} |
||||
|
||||
.oi-timer:before { |
||||
content:'\e0cd'; |
||||
} |
||||
|
||||
.oi-transfer:before { |
||||
content:'\e0ce'; |
||||
} |
||||
|
||||
.oi-trash:before { |
||||
content:'\e0cf'; |
||||
} |
||||
|
||||
.oi-underline:before { |
||||
content:'\e0d0'; |
||||
} |
||||
|
||||
.oi-vertical-align-bottom:before { |
||||
content:'\e0d1'; |
||||
} |
||||
|
||||
.oi-vertical-align-center:before { |
||||
content:'\e0d2'; |
||||
} |
||||
|
||||
.oi-vertical-align-top:before { |
||||
content:'\e0d3'; |
||||
} |
||||
|
||||
.oi-video:before { |
||||
content:'\e0d4'; |
||||
} |
||||
|
||||
.oi-volume-high:before { |
||||
content:'\e0d5'; |
||||
} |
||||
|
||||
.oi-volume-low:before { |
||||
content:'\e0d6'; |
||||
} |
||||
|
||||
.oi-volume-off:before { |
||||
content:'\e0d7'; |
||||
} |
||||
|
||||
.oi-warning:before { |
||||
content:'\e0d8'; |
||||
} |
||||
|
||||
.oi-wifi:before { |
||||
content:'\e0d9'; |
||||
} |
||||
|
||||
.oi-wrench:before { |
||||
content:'\e0da'; |
||||
} |
||||
|
||||
.oi-x:before { |
||||
content:'\e0db'; |
||||
} |
||||
|
||||
.oi-yen:before { |
||||
content:'\e0dc'; |
||||
} |
||||
|
||||
.oi-zoom-in:before { |
||||
content:'\e0dd'; |
||||
} |
||||
|
||||
.oi-zoom-out:before { |
||||
content:'\e0de'; |
||||
} |
||||
|
@ -0,0 +1,954 @@
@@ -0,0 +1,954 @@
|
||||
/* Bootstrap */ |
||||
|
||||
@font-face |
||||
font-family 'Icons' |
||||
src url('../fonts/open-iconic.eot') |
||||
src url('../fonts/open-iconic.eot?#iconic-sm') format('embedded-opentype'), url('../fonts/open-iconic.woff') format('woff'), url('../fonts/open-iconic.ttf') format('truetype'), url('../fonts/open-iconic.svg#iconic-sm') format('svg') |
||||
font-weight normal |
||||
font-style normal |
||||
|
||||
|
||||
// Catchall baseclass |
||||
.oi |
||||
position relative |
||||
top 1px |
||||
display inline-block |
||||
font-family 'Icons' |
||||
font-style normal |
||||
font-weight normal |
||||
line-height 1 |
||||
-webkit-font-smoothing antialiased |
||||
-moz-osx-font-smoothing grayscale |
||||
|
||||
|
||||
&:empty:before |
||||
width 1em |
||||
text-align center |
||||
box-sizing content-box |
||||
|
||||
&.oi-align-center:before |
||||
text-align center |
||||
|
||||
|
||||
&.oi-align-left:before |
||||
text-align left |
||||
|
||||
|
||||
&.oi-align-right:before |
||||
text-align right |
||||
|
||||
|
||||
|
||||
&.oi-flip-horizontal:before |
||||
-webkit-transform scale(-1, 1) |
||||
-ms-transform scale(-1, 1) |
||||
transform scale(-1, 1) |
||||
|
||||
|
||||
&.oi-flip-vertical:before |
||||
-webkit-transform scale(1, -1) |
||||
-ms-transform scale(-1, 1) |
||||
transform scale(1, -1) |
||||
|
||||
|
||||
&.oi-flip-horizontal-vertical:before |
||||
-webkit-transform scale(-1, -1) |
||||
-ms-transform scale(-1, 1) |
||||
transform scale(-1, -1) |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.oi-account-login:before { |
||||
content'\e000' |
||||
} |
||||
|
||||
.oi-account-logout:before { |
||||
content'\e001' |
||||
} |
||||
|
||||
.oi-action-redo:before { |
||||
content'\e002' |
||||
} |
||||
|
||||
.oi-action-undo:before { |
||||
content'\e003' |
||||
} |
||||
|
||||
.oi-align-center:before { |
||||
content'\e004' |
||||
} |
||||
|
||||
.oi-align-left:before { |
||||
content'\e005' |
||||
} |
||||
|
||||
.oi-align-right:before { |
||||
content'\e006' |
||||
} |
||||
|
||||
.oi-aperture:before { |
||||
content'\e007' |
||||
} |
||||
|
||||
.oi-arrow-bottom:before { |
||||
content'\e008' |
||||
} |
||||
|
||||
.oi-arrow-circle-bottom:before { |
||||
content'\e009' |
||||
} |
||||
|
||||
.oi-arrow-circle-left:before { |
||||
content'\e00a' |
||||
} |
||||
|
||||
.oi-arrow-circle-right:before { |
||||
content'\e00b' |
||||
} |
||||
|
||||
.oi-arrow-circle-top:before { |
||||
content'\e00c' |
||||
} |
||||
|
||||
.oi-arrow-left:before { |
||||
content'\e00d' |
||||
} |
||||
|
||||
.oi-arrow-right:before { |
||||
content'\e00e' |
||||
} |
||||
|
||||
.oi-arrow-thick-bottom:before { |
||||
content'\e00f' |
||||
} |
||||
|
||||
.oi-arrow-thick-left:before { |
||||
content'\e010' |
||||
} |
||||
|
||||
.oi-arrow-thick-right:before { |
||||
content'\e011' |
||||
} |
||||
|
||||
.oi-arrow-thick-top:before { |
||||
content'\e012' |
||||
} |
||||
|
||||
.oi-arrow-top:before { |
||||
content'\e013' |
||||
} |
||||
|
||||
.oi-audio-spectrum:before { |
||||
content'\e014' |
||||
} |
||||
|
||||
.oi-audio:before { |
||||
content'\e015' |
||||
} |
||||
|
||||
.oi-badge:before { |
||||
content'\e016' |
||||
} |
||||
|
||||
.oi-ban:before { |
||||
content'\e017' |
||||
} |
||||
|
||||
.oi-bar-chart:before { |
||||
content'\e018' |
||||
} |
||||
|
||||
.oi-basket:before { |
||||
content'\e019' |
||||
} |
||||
|
||||
.oi-battery-empty:before { |
||||
content'\e01a' |
||||
} |
||||
|
||||
.oi-battery-full:before { |
||||
content'\e01b' |
||||
} |
||||
|
||||
.oi-beaker:before { |
||||
content'\e01c' |
||||
} |
||||
|
||||
.oi-bell:before { |
||||
content'\e01d' |
||||
} |
||||
|
||||
.oi-bluetooth:before { |
||||
content'\e01e' |
||||
} |
||||
|
||||
.oi-bold:before { |
||||
content'\e01f' |
||||
} |
||||
|
||||
.oi-bolt:before { |
||||
content'\e020' |
||||
} |
||||
|
||||
.oi-book:before { |
||||
content'\e021' |
||||
} |
||||
|
||||
.oi-bookmark:before { |
||||
content'\e022' |
||||
} |
||||
|
||||
.oi-box:before { |
||||
content'\e023' |
||||
} |
||||
|
||||
.oi-briefcase:before { |
||||
content'\e024' |
||||
} |
||||
|
||||
.oi-british-pound:before { |
||||
content'\e025' |
||||
} |
||||
|
||||
.oi-browser:before { |
||||
content'\e026' |
||||
} |
||||
|
||||
.oi-brush:before { |
||||
content'\e027' |
||||
} |
||||
|
||||
.oi-bug:before { |
||||
content'\e028' |
||||
} |
||||
|
||||
.oi-bullhorn:before { |
||||
content'\e029' |
||||
} |
||||
|
||||
.oi-calculator:before { |
||||
content'\e02a' |
||||
} |
||||
|
||||
.oi-calendar:before { |
||||
content'\e02b' |
||||
} |
||||
|
||||
.oi-camera-slr:before { |
||||
content'\e02c' |
||||
} |
||||
|
||||
.oi-caret-bottom:before { |
||||
content'\e02d' |
||||
} |
||||
|
||||
.oi-caret-left:before { |
||||
content'\e02e' |
||||
} |
||||
|
||||
.oi-caret-right:before { |
||||
content'\e02f' |
||||
} |
||||
|
||||
.oi-caret-top:before { |
||||
content'\e030' |
||||
} |
||||
|
||||
.oi-cart:before { |
||||
content'\e031' |
||||
} |
||||
|
||||
.oi-chat:before { |
||||
content'\e032' |
||||
} |
||||
|
||||
.oi-check:before { |
||||
content'\e033' |
||||
} |
||||
|
||||
.oi-chevron-bottom:before { |
||||
content'\e034' |
||||
} |
||||
|
||||
.oi-chevron-left:before { |
||||
content'\e035' |
||||
} |
||||
|
||||
.oi-chevron-right:before { |
||||
content'\e036' |
||||
} |
||||
|
||||
.oi-chevron-top:before { |
||||
content'\e037' |
||||
} |
||||
|
||||
.oi-circle-check:before { |
||||
content'\e038' |
||||
} |
||||
|
||||
.oi-circle-x:before { |
||||
content'\e039' |
||||
} |
||||
|
||||
.oi-clipboard:before { |
||||
content'\e03a' |
||||
} |
||||
|
||||
.oi-clock:before { |
||||
content'\e03b' |
||||
} |
||||
|
||||
.oi-cloud-download:before { |
||||
content'\e03c' |
||||
} |
||||
|
||||
.oi-cloud-upload:before { |
||||
content'\e03d' |
||||
} |
||||
|
||||
.oi-cloud:before { |
||||
content'\e03e' |
||||
} |
||||
|
||||
.oi-cloudy:before { |
||||
content'\e03f' |
||||
} |
||||
|
||||
.oi-code:before { |
||||
content'\e040' |
||||
} |
||||
|
||||
.oi-cog:before { |
||||
content'\e041' |
||||
} |
||||
|
||||
.oi-collapse-down:before { |
||||
content'\e042' |
||||
} |
||||
|
||||
.oi-collapse-left:before { |
||||
content'\e043' |
||||
} |
||||
|
||||
.oi-collapse-right:before { |
||||
content'\e044' |
||||
} |
||||
|
||||
.oi-collapse-up:before { |
||||
content'\e045' |
||||
} |
||||
|
||||
.oi-command:before { |
||||
content'\e046' |
||||
} |
||||
|
||||
.oi-comment-square:before { |
||||
content'\e047' |
||||
} |
||||
|
||||
.oi-compass:before { |
||||
content'\e048' |
||||
} |
||||
|
||||
.oi-contrast:before { |
||||
content'\e049' |
||||
} |
||||
|
||||
.oi-copywriting:before { |
||||
content'\e04a' |
||||
} |
||||
|
||||
.oi-credit-card:before { |
||||
content'\e04b' |
||||
} |
||||
|
||||
.oi-crop:before { |
||||
content'\e04c' |
||||
} |
||||
|
||||
.oi-dashboard:before { |
||||
content'\e04d' |
||||
} |
||||
|
||||
.oi-data-transfer-download:before { |
||||
content'\e04e' |
||||
} |
||||
|
||||
.oi-data-transfer-upload:before { |
||||
content'\e04f' |
||||
} |
||||
|
||||
.oi-delete:before { |
||||
content'\e050' |
||||
} |
||||
|
||||
.oi-dial:before { |
||||
content'\e051' |
||||
} |
||||
|
||||
.oi-document:before { |
||||
content'\e052' |
||||
} |
||||
|
||||
.oi-dollar:before { |
||||
content'\e053' |
||||
} |
||||
|
||||
.oi-double-quote-sans-left:before { |
||||
content'\e054' |
||||
} |
||||
|
||||
.oi-double-quote-sans-right:before { |
||||
content'\e055' |
||||
} |
||||
|
||||
.oi-double-quote-serif-left:before { |
||||
content'\e056' |
||||
} |
||||
|
||||
.oi-double-quote-serif-right:before { |
||||
content'\e057' |
||||
} |
||||
|
||||
.oi-droplet:before { |
||||
content'\e058' |
||||
} |
||||
|
||||
.oi-eject:before { |
||||
content'\e059' |
||||
} |
||||
|
||||
.oi-elevator:before { |
||||
content'\e05a' |
||||
} |
||||
|
||||
.oi-ellipses:before { |
||||
content'\e05b' |
||||
} |
||||
|
||||
.oi-envelope-closed:before { |
||||
content'\e05c' |
||||
} |
||||
|
||||
.oi-envelope-open:before { |
||||
content'\e05d' |
||||
} |
||||
|
||||
.oi-euro:before { |
||||
content'\e05e' |
||||
} |
||||
|
||||
.oi-excerpt:before { |
||||
content'\e05f' |
||||
} |
||||
|
||||
.oi-expand-down:before { |
||||
content'\e060' |
||||
} |
||||
|
||||
.oi-expand-left:before { |
||||
content'\e061' |
||||
} |
||||
|
||||
.oi-expand-right:before { |
||||
content'\e062' |
||||
} |
||||
|
||||
.oi-expand-up:before { |
||||
content'\e063' |
||||
} |
||||
|
||||
.oi-external-link:before { |
||||
content'\e064' |
||||
} |
||||
|
||||
.oi-eye:before { |
||||
content'\e065' |
||||
} |
||||
|
||||
.oi-eyedropper:before { |
||||
content'\e066' |
||||
} |
||||
|
||||
.oi-file:before { |
||||
content'\e067' |
||||
} |
||||
|
||||
.oi-fire:before { |
||||
content'\e068' |
||||
} |
||||
|
||||
.oi-flag:before { |
||||
content'\e069' |
||||
} |
||||
|
||||
.oi-flash:before { |
||||
content'\e06a' |
||||
} |
||||
|
||||
.oi-folder:before { |
||||
content'\e06b' |
||||
} |
||||
|
||||
.oi-fork:before { |
||||
content'\e06c' |
||||
} |
||||
|
||||
.oi-fullscreen-enter:before { |
||||
content'\e06d' |
||||
} |
||||
|
||||
.oi-fullscreen-exit:before { |
||||
content'\e06e' |
||||
} |
||||
|
||||
.oi-globe:before { |
||||
content'\e06f' |
||||
} |
||||
|
||||
.oi-graph:before { |
||||
content'\e070' |
||||
} |
||||
|
||||
.oi-grid-four-up:before { |
||||
content'\e071' |
||||
} |
||||
|
||||
.oi-grid-three-up:before { |
||||
content'\e072' |
||||
} |
||||
|
||||
.oi-grid-two-up:before { |
||||
content'\e073' |
||||
} |
||||
|
||||
.oi-hard-drive:before { |
||||
content'\e074' |
||||
} |
||||
|
||||
.oi-header:before { |
||||
content'\e075' |
||||
} |
||||
|
||||
.oi-headphones:before { |
||||
content'\e076' |
||||
} |
||||
|
||||
.oi-heart:before { |
||||
content'\e077' |
||||
} |
||||
|
||||
.oi-home:before { |
||||
content'\e078' |
||||
} |
||||
|
||||
.oi-image:before { |
||||
content'\e079' |
||||
} |
||||
|
||||
.oi-inbox:before { |
||||
content'\e07a' |
||||
} |
||||
|
||||
.oi-infinity:before { |
||||
content'\e07b' |
||||
} |
||||
|
||||
.oi-info:before { |
||||
content'\e07c' |
||||
} |
||||
|
||||
.oi-italic:before { |
||||
content'\e07d' |
||||
} |
||||
|
||||
.oi-justify-center:before { |
||||
content'\e07e' |
||||
} |
||||
|
||||
.oi-justify-left:before { |
||||
content'\e07f' |
||||
} |
||||
|
||||
.oi-justify-right:before { |
||||
content'\e080' |
||||
} |
||||
|
||||
.oi-key:before { |
||||
content'\e081' |
||||
} |
||||
|
||||
.oi-laptop:before { |
||||
content'\e082' |
||||
} |
||||
|
||||
.oi-layers:before { |
||||
content'\e083' |
||||
} |
||||
|
||||
.oi-lightbulb:before { |
||||
content'\e084' |
||||
} |
||||
|
||||
.oi-link-broken:before { |
||||
content'\e085' |
||||
} |
||||
|
||||
.oi-link-intact:before { |
||||
content'\e086' |
||||
} |
||||
|
||||
.oi-list-rich:before { |
||||
content'\e087' |
||||
} |
||||
|
||||
.oi-list:before { |
||||
content'\e088' |
||||
} |
||||
|
||||
.oi-location:before { |
||||
content'\e089' |
||||
} |
||||
|
||||
.oi-lock-locked:before { |
||||
content'\e08a' |
||||
} |
||||
|
||||
.oi-lock-unlocked:before { |
||||
content'\e08b' |
||||
} |
||||
|
||||
.oi-loop-circular:before { |
||||
content'\e08c' |
||||
} |
||||
|
||||
.oi-loop-square:before { |
||||
content'\e08d' |
||||
} |
||||
|
||||
.oi-loop:before { |
||||
content'\e08e' |
||||
} |
||||
|
||||
.oi-magnifying-glass:before { |
||||
content'\e08f' |
||||
} |
||||
|
||||
.oi-map-marker:before { |
||||
content'\e090' |
||||
} |
||||
|
||||
.oi-map:before { |
||||
content'\e091' |
||||
} |
||||
|
||||
.oi-media-pause:before { |
||||
content'\e092' |
||||
} |
||||
|
||||
.oi-media-play:before { |
||||
content'\e093' |
||||
} |
||||
|
||||
.oi-media-record:before { |
||||
content'\e094' |
||||
} |
||||
|
||||
.oi-media-skip-backward:before { |
||||
content'\e095' |
||||
} |
||||
|
||||
.oi-media-skip-forward:before { |
||||
content'\e096' |
||||
} |
||||
|
||||
.oi-media-step-backward:before { |
||||
content'\e097' |
||||
} |
||||
|
||||
.oi-media-step-forward:before { |
||||
content'\e098' |
||||
} |
||||
|
||||
.oi-media-stop:before { |
||||
content'\e099' |
||||
} |
||||
|
||||
.oi-medical-cross:before { |
||||
content'\e09a' |
||||
} |
||||
|
||||
.oi-menu:before { |
||||
content'\e09b' |
||||
} |
||||
|
||||
.oi-microphone:before { |
||||
content'\e09c' |
||||
} |
||||
|
||||
.oi-minus:before { |
||||
content'\e09d' |
||||
} |
||||
|
||||
.oi-monitor:before { |
||||
content'\e09e' |
||||
} |
||||
|
||||
.oi-moon:before { |
||||
content'\e09f' |
||||
} |
||||
|
||||
.oi-move:before { |
||||
content'\e0a0' |
||||
} |
||||
|
||||
.oi-musical-note:before { |
||||
content'\e0a1' |
||||
} |
||||
|
||||
.oi-paperclip:before { |
||||
content'\e0a2' |
||||
} |
||||
|
||||
.oi-pencil:before { |
||||
content'\e0a3' |
||||
} |
||||
|
||||
.oi-people:before { |
||||
content'\e0a4' |
||||
} |
||||
|
||||
.oi-person:before { |
||||
content'\e0a5' |
||||
} |
||||
|
||||
.oi-phone:before { |
||||
content'\e0a6' |
||||
} |
||||
|
||||
.oi-pie-chart:before { |
||||
content'\e0a7' |
||||
} |
||||
|
||||
.oi-pin:before { |
||||
content'\e0a8' |
||||
} |
||||
|
||||
.oi-play-circle:before { |
||||
content'\e0a9' |
||||
} |
||||
|
||||
.oi-plus:before { |
||||
content'\e0aa' |
||||
} |
||||
|
||||
.oi-power-standby:before { |
||||
content'\e0ab' |
||||
} |
||||
|
||||
.oi-print:before { |
||||
content'\e0ac' |
||||
} |
||||
|
||||
.oi-project:before { |
||||
content'\e0ad' |
||||
} |
||||
|
||||
.oi-pulse:before { |
||||
content'\e0ae' |
||||
} |
||||
|
||||
.oi-puzzle-piece:before { |
||||
content'\e0af' |
||||
} |
||||
|
||||
.oi-question-mark:before { |
||||
content'\e0b0' |
||||
} |
||||
|
||||
.oi-rain:before { |
||||
content'\e0b1' |
||||
} |
||||
|
||||
.oi-random:before { |
||||
content'\e0b2' |
||||
} |
||||
|
||||
.oi-reload:before { |
||||
content'\e0b3' |
||||
} |
||||
|
||||
.oi-resize-both:before { |
||||
content'\e0b4' |
||||
} |
||||
|
||||
.oi-resize-height:before { |
||||
content'\e0b5' |
||||
} |
||||
|
||||
.oi-resize-width:before { |
||||
content'\e0b6' |
||||
} |
||||
|
||||
.oi-rss-alt:before { |
||||
content'\e0b7' |
||||
} |
||||
|
||||
.oi-rss:before { |
||||
content'\e0b8' |
||||
} |
||||
|
||||
.oi-script:before { |
||||
content'\e0b9' |
||||
} |
||||
|
||||
.oi-share-boxed:before { |
||||
content'\e0ba' |
||||
} |
||||
|
||||
.oi-share:before { |
||||
content'\e0bb' |
||||
} |
||||
|
||||
.oi-shield:before { |
||||
content'\e0bc' |
||||
} |
||||
|
||||
.oi-signal:before { |
||||
content'\e0bd' |
||||
} |
||||
|
||||
.oi-signpost:before { |
||||
content'\e0be' |
||||
} |
||||
|
||||
.oi-sort-ascending:before { |
||||
content'\e0bf' |
||||
} |
||||
|
||||
.oi-sort-descending:before { |
||||
content'\e0c0' |
||||
} |
||||
|
||||
.oi-spreadsheet:before { |
||||
content'\e0c1' |
||||
} |
||||
|
||||
.oi-star:before { |
||||
content'\e0c2' |
||||
} |
||||
|
||||
.oi-sun:before { |
||||
content'\e0c3' |
||||
} |
||||
|
||||
.oi-tablet:before { |
||||
content'\e0c4' |
||||
} |
||||
|
||||
.oi-tag:before { |
||||
content'\e0c5' |
||||
} |
||||
|
||||
.oi-tags:before { |
||||
content'\e0c6' |
||||
} |
||||
|
||||
.oi-target:before { |
||||
content'\e0c7' |
||||
} |
||||
|
||||
.oi-task:before { |
||||
content'\e0c8' |
||||
} |
||||
|
||||
.oi-terminal:before { |
||||
content'\e0c9' |
||||
} |
||||
|
||||
.oi-text:before { |
||||
content'\e0ca' |
||||
} |
||||
|
||||
.oi-thumb-down:before { |
||||
content'\e0cb' |
||||
} |
||||
|
||||
.oi-thumb-up:before { |
||||
content'\e0cc' |
||||
} |
||||
|
||||
.oi-timer:before { |
||||
content'\e0cd' |
||||
} |
||||
|
||||
.oi-transfer:before { |
||||
content'\e0ce' |
||||
} |
||||
|
||||
.oi-trash:before { |
||||
content'\e0cf' |
||||
} |
||||
|
||||
.oi-underline:before { |
||||
content'\e0d0' |
||||
} |
||||
|
||||
.oi-vertical-align-bottom:before { |
||||
content'\e0d1' |
||||
} |
||||
|
||||
.oi-vertical-align-center:before { |
||||
content'\e0d2' |
||||
} |
||||
|
||||
.oi-vertical-align-top:before { |
||||
content'\e0d3' |
||||
} |
||||
|
||||
.oi-video:before { |
||||
content'\e0d4' |
||||
} |
||||
|
||||
.oi-volume-high:before { |
||||
content'\e0d5' |
||||
} |
||||
|
||||
.oi-volume-low:before { |
||||
content'\e0d6' |
||||
} |
||||
|
||||
.oi-volume-off:before { |
||||
content'\e0d7' |
||||
} |
||||
|
||||
.oi-warning:before { |
||||
content'\e0d8' |
||||
} |
||||
|
||||
.oi-wifi:before { |
||||
content'\e0d9' |
||||
} |
||||
|
||||
.oi-wrench:before { |
||||
content'\e0da' |
||||
} |
||||
|
||||
.oi-x:before { |
||||
content'\e0db' |
||||
} |
||||
|
||||
.oi-yen:before { |
||||
content'\e0dc' |
||||
} |
||||
|
||||
.oi-zoom-in:before { |
||||
content'\e0dd' |
||||
} |
||||
|
||||
.oi-zoom-out:before { |
||||
content'\e0de' |
||||
} |
||||
|
@ -0,0 +1,511 @@
@@ -0,0 +1,511 @@
|
||||
|
||||
@font-face { |
||||
font-family: 'Icons'; |
||||
src: url('../fonts/open-iconic.eot'); |
||||
src: url('../fonts/open-iconic.eot?#iconic-sm') format('embedded-opentype'), url('../fonts/open-iconic.woff') format('woff'), url('../fonts/open-iconic.ttf') format('truetype'), url('../fonts/open-iconic.otf') format('opentype'), url('../fonts/open-iconic.svg#iconic-sm') format('svg'); |
||||
font-weight: normal; |
||||
font-style: normal; |
||||
} |
||||
|
||||
.oi[data-glyph].oi-text-replace { |
||||
font-size: 0; |
||||
line-height: 0; |
||||
} |
||||
|
||||
.oi[data-glyph].oi-text-replace:before { |
||||
width: 1em; |
||||
text-align: center; |
||||
} |
||||
|
||||
.oi[data-glyph]:before { |
||||
font-family: 'Icons'; |
||||
display: inline-block; |
||||
speak: none; |
||||
line-height: 1; |
||||
vertical-align: baseline; |
||||
font-weight: normal; |
||||
font-style: normal; |
||||
-webkit-font-smoothing: antialiased; |
||||
-moz-osx-font-smoothing: grayscale; |
||||
} |
||||
|
||||
.oi[data-glyph]:empty:before { |
||||
width: 1em; |
||||
text-align: center; |
||||
box-sizing: content-box; |
||||
} |
||||
|
||||
.oi[data-glyph].oi-align-left:before { |
||||
text-align: left; |
||||
} |
||||
|
||||
.oi[data-glyph].oi-align-right:before { |
||||
text-align: right; |
||||
} |
||||
|
||||
.oi[data-glyph].oi-align-center:before { |
||||
text-align: center; |
||||
} |
||||
|
||||
.oi[data-glyph].oi-flip-horizontal:before { |
||||
-webkit-transform: scale(-1, 1); |
||||
-ms-transform: scale(-1, 1); |
||||
transform: scale(-1, 1); |
||||
} |
||||
.oi[data-glyph].oi-flip-vertical:before { |
||||
-webkit-transform: scale(1, -1); |
||||
-ms-transform: scale(-1, 1); |
||||
transform: scale(1, -1); |
||||
} |
||||
.oi[data-glyph].oi-flip-horizontal-vertical:before { |
||||
-webkit-transform: scale(-1, -1); |
||||
-ms-transform: scale(-1, 1); |
||||
transform: scale(-1, -1); |
||||
} |
||||
|
||||
|
||||
.oi[data-glyph=account-login]:before { content:'\e000'; } |
||||
|
||||
.oi[data-glyph=account-logout]:before { content:'\e001'; } |
||||
|
||||
.oi[data-glyph=action-redo]:before { content:'\e002'; } |
||||
|
||||
.oi[data-glyph=action-undo]:before { content:'\e003'; } |
||||
|
||||
.oi[data-glyph=align-center]:before { content:'\e004'; } |
||||
|
||||
.oi[data-glyph=align-left]:before { content:'\e005'; } |
||||
|
||||
.oi[data-glyph=align-right]:before { content:'\e006'; } |
||||
|
||||
.oi[data-glyph=aperture]:before { content:'\e007'; } |
||||
|
||||
.oi[data-glyph=arrow-bottom]:before { content:'\e008'; } |
||||
|
||||
.oi[data-glyph=arrow-circle-bottom]:before { content:'\e009'; } |
||||
|
||||
.oi[data-glyph=arrow-circle-left]:before { content:'\e00a'; } |
||||
|
||||
.oi[data-glyph=arrow-circle-right]:before { content:'\e00b'; } |
||||
|
||||
.oi[data-glyph=arrow-circle-top]:before { content:'\e00c'; } |
||||
|
||||
.oi[data-glyph=arrow-left]:before { content:'\e00d'; } |
||||
|
||||
.oi[data-glyph=arrow-right]:before { content:'\e00e'; } |
||||
|
||||
.oi[data-glyph=arrow-thick-bottom]:before { content:'\e00f'; } |
||||
|
||||
.oi[data-glyph=arrow-thick-left]:before { content:'\e010'; } |
||||
|
||||
.oi[data-glyph=arrow-thick-right]:before { content:'\e011'; } |
||||
|
||||
.oi[data-glyph=arrow-thick-top]:before { content:'\e012'; } |
||||
|
||||
.oi[data-glyph=arrow-top]:before { content:'\e013'; } |
||||
|
||||
.oi[data-glyph=audio-spectrum]:before { content:'\e014'; } |
||||
|
||||
.oi[data-glyph=audio]:before { content:'\e015'; } |
||||
|
||||
.oi[data-glyph=badge]:before { content:'\e016'; } |
||||
|
||||
.oi[data-glyph=ban]:before { content:'\e017'; } |
||||
|
||||
.oi[data-glyph=bar-chart]:before { content:'\e018'; } |
||||
|
||||
.oi[data-glyph=basket]:before { content:'\e019'; } |
||||
|
||||
.oi[data-glyph=battery-empty]:before { content:'\e01a'; } |
||||
|
||||
.oi[data-glyph=battery-full]:before { content:'\e01b'; } |
||||
|
||||
.oi[data-glyph=beaker]:before { content:'\e01c'; } |
||||
|
||||
.oi[data-glyph=bell]:before { content:'\e01d'; } |
||||
|
||||
.oi[data-glyph=bluetooth]:before { content:'\e01e'; } |
||||
|
||||
.oi[data-glyph=bold]:before { content:'\e01f'; } |
||||
|
||||
.oi[data-glyph=bolt]:before { content:'\e020'; } |
||||
|
||||
.oi[data-glyph=book]:before { content:'\e021'; } |
||||
|
||||
.oi[data-glyph=bookmark]:before { content:'\e022'; } |
||||
|
||||
.oi[data-glyph=box]:before { content:'\e023'; } |
||||
|
||||
.oi[data-glyph=briefcase]:before { content:'\e024'; } |
||||
|
||||
.oi[data-glyph=british-pound]:before { content:'\e025'; } |
||||
|
||||
.oi[data-glyph=browser]:before { content:'\e026'; } |
||||
|
||||
.oi[data-glyph=brush]:before { content:'\e027'; } |
||||
|
||||
.oi[data-glyph=bug]:before { content:'\e028'; } |
||||
|
||||
.oi[data-glyph=bullhorn]:before { content:'\e029'; } |
||||
|
||||
.oi[data-glyph=calculator]:before { content:'\e02a'; } |
||||
|
||||
.oi[data-glyph=calendar]:before { content:'\e02b'; } |
||||
|
||||
.oi[data-glyph=camera-slr]:before { content:'\e02c'; } |
||||
|
||||
.oi[data-glyph=caret-bottom]:before { content:'\e02d'; } |
||||
|
||||
.oi[data-glyph=caret-left]:before { content:'\e02e'; } |
||||
|
||||
.oi[data-glyph=caret-right]:before { content:'\e02f'; } |
||||
|
||||
.oi[data-glyph=caret-top]:before { content:'\e030'; } |
||||
|
||||
.oi[data-glyph=cart]:before { content:'\e031'; } |
||||
|
||||
.oi[data-glyph=chat]:before { content:'\e032'; } |
||||
|
||||
.oi[data-glyph=check]:before { content:'\e033'; } |
||||
|
||||
.oi[data-glyph=chevron-bottom]:before { content:'\e034'; } |
||||
|
||||
.oi[data-glyph=chevron-left]:before { content:'\e035'; } |
||||
|
||||
.oi[data-glyph=chevron-right]:before { content:'\e036'; } |
||||
|
||||
.oi[data-glyph=chevron-top]:before { content:'\e037'; } |
||||
|
||||
.oi[data-glyph=circle-check]:before { content:'\e038'; } |
||||
|
||||
.oi[data-glyph=circle-x]:before { content:'\e039'; } |
||||
|
||||
.oi[data-glyph=clipboard]:before { content:'\e03a'; } |
||||
|
||||
.oi[data-glyph=clock]:before { content:'\e03b'; } |
||||
|
||||
.oi[data-glyph=cloud-download]:before { content:'\e03c'; } |
||||
|
||||
.oi[data-glyph=cloud-upload]:before { content:'\e03d'; } |
||||
|
||||
.oi[data-glyph=cloud]:before { content:'\e03e'; } |
||||
|
||||
.oi[data-glyph=cloudy]:before { content:'\e03f'; } |
||||
|
||||
.oi[data-glyph=code]:before { content:'\e040'; } |
||||
|
||||
.oi[data-glyph=cog]:before { content:'\e041'; } |
||||
|
||||
.oi[data-glyph=collapse-down]:before { content:'\e042'; } |
||||
|
||||
.oi[data-glyph=collapse-left]:before { content:'\e043'; } |
||||
|
||||
.oi[data-glyph=collapse-right]:before { content:'\e044'; } |
||||
|
||||
.oi[data-glyph=collapse-up]:before { content:'\e045'; } |
||||
|
||||
.oi[data-glyph=command]:before { content:'\e046'; } |
||||
|
||||
.oi[data-glyph=comment-square]:before { content:'\e047'; } |
||||
|
||||
.oi[data-glyph=compass]:before { content:'\e048'; } |
||||
|
||||
.oi[data-glyph=contrast]:before { content:'\e049'; } |
||||
|
||||
.oi[data-glyph=copywriting]:before { content:'\e04a'; } |
||||
|
||||
.oi[data-glyph=credit-card]:before { content:'\e04b'; } |
||||
|
||||
.oi[data-glyph=crop]:before { content:'\e04c'; } |
||||
|
||||
.oi[data-glyph=dashboard]:before { content:'\e04d'; } |
||||
|
||||
.oi[data-glyph=data-transfer-download]:before { content:'\e04e'; } |
||||
|
||||
.oi[data-glyph=data-transfer-upload]:before { content:'\e04f'; } |
||||
|
||||
.oi[data-glyph=delete]:before { content:'\e050'; } |
||||
|
||||
.oi[data-glyph=dial]:before { content:'\e051'; } |
||||
|
||||
.oi[data-glyph=document]:before { content:'\e052'; } |
||||
|
||||
.oi[data-glyph=dollar]:before { content:'\e053'; } |
||||
|
||||
.oi[data-glyph=double-quote-sans-left]:before { content:'\e054'; } |
||||
|
||||
.oi[data-glyph=double-quote-sans-right]:before { content:'\e055'; } |
||||
|
||||
.oi[data-glyph=double-quote-serif-left]:before { content:'\e056'; } |
||||
|
||||
.oi[data-glyph=double-quote-serif-right]:before { content:'\e057'; } |
||||
|
||||
.oi[data-glyph=droplet]:before { content:'\e058'; } |
||||
|
||||
.oi[data-glyph=eject]:before { content:'\e059'; } |
||||
|
||||
.oi[data-glyph=elevator]:before { content:'\e05a'; } |
||||
|
||||
.oi[data-glyph=ellipses]:before { content:'\e05b'; } |
||||
|
||||
.oi[data-glyph=envelope-closed]:before { content:'\e05c'; } |
||||
|
||||
.oi[data-glyph=envelope-open]:before { content:'\e05d'; } |
||||
|
||||
.oi[data-glyph=euro]:before { content:'\e05e'; } |
||||
|
||||
.oi[data-glyph=excerpt]:before { content:'\e05f'; } |
||||
|
||||
.oi[data-glyph=expand-down]:before { content:'\e060'; } |
||||
|
||||
.oi[data-glyph=expand-left]:before { content:'\e061'; } |
||||
|
||||
.oi[data-glyph=expand-right]:before { content:'\e062'; } |
||||
|
||||
.oi[data-glyph=expand-up]:before { content:'\e063'; } |
||||
|
||||
.oi[data-glyph=external-link]:before { content:'\e064'; } |
||||
|
||||
.oi[data-glyph=eye]:before { content:'\e065'; } |
||||
|
||||
.oi[data-glyph=eyedropper]:before { content:'\e066'; } |
||||
|
||||
.oi[data-glyph=file]:before { content:'\e067'; } |
||||
|
||||
.oi[data-glyph=fire]:before { content:'\e068'; } |
||||
|
||||
.oi[data-glyph=flag]:before { content:'\e069'; } |
||||
|
||||
.oi[data-glyph=flash]:before { content:'\e06a'; } |
||||
|
||||
.oi[data-glyph=folder]:before { content:'\e06b'; } |
||||
|
||||
.oi[data-glyph=fork]:before { content:'\e06c'; } |
||||
|
||||
.oi[data-glyph=fullscreen-enter]:before { content:'\e06d'; } |
||||
|
||||
.oi[data-glyph=fullscreen-exit]:before { content:'\e06e'; } |
||||
|
||||
.oi[data-glyph=globe]:before { content:'\e06f'; } |
||||
|
||||
.oi[data-glyph=graph]:before { content:'\e070'; } |
||||
|
||||
.oi[data-glyph=grid-four-up]:before { content:'\e071'; } |
||||
|
||||
.oi[data-glyph=grid-three-up]:before { content:'\e072'; } |
||||
|
||||
.oi[data-glyph=grid-two-up]:before { content:'\e073'; } |
||||
|
||||
.oi[data-glyph=hard-drive]:before { content:'\e074'; } |
||||
|
||||
.oi[data-glyph=header]:before { content:'\e075'; } |
||||
|
||||
.oi[data-glyph=headphones]:before { content:'\e076'; } |
||||
|
||||
.oi[data-glyph=heart]:before { content:'\e077'; } |
||||
|
||||
.oi[data-glyph=home]:before { content:'\e078'; } |
||||
|
||||
.oi[data-glyph=image]:before { content:'\e079'; } |
||||
|
||||
.oi[data-glyph=inbox]:before { content:'\e07a'; } |
||||
|
||||
.oi[data-glyph=infinity]:before { content:'\e07b'; } |
||||
|
||||
.oi[data-glyph=info]:before { content:'\e07c'; } |
||||
|
||||
.oi[data-glyph=italic]:before { content:'\e07d'; } |
||||
|
||||
.oi[data-glyph=justify-center]:before { content:'\e07e'; } |
||||
|
||||
.oi[data-glyph=justify-left]:before { content:'\e07f'; } |
||||
|
||||
.oi[data-glyph=justify-right]:before { content:'\e080'; } |
||||
|
||||
.oi[data-glyph=key]:before { content:'\e081'; } |
||||
|
||||
.oi[data-glyph=laptop]:before { content:'\e082'; } |
||||
|
||||
.oi[data-glyph=layers]:before { content:'\e083'; } |
||||
|
||||
.oi[data-glyph=lightbulb]:before { content:'\e084'; } |
||||
|
||||
.oi[data-glyph=link-broken]:before { content:'\e085'; } |
||||
|
||||
.oi[data-glyph=link-intact]:before { content:'\e086'; } |
||||
|
||||
.oi[data-glyph=list-rich]:before { content:'\e087'; } |
||||
|
||||
.oi[data-glyph=list]:before { content:'\e088'; } |
||||
|
||||
.oi[data-glyph=location]:before { content:'\e089'; } |
||||
|
||||
.oi[data-glyph=lock-locked]:before { content:'\e08a'; } |
||||
|
||||
.oi[data-glyph=lock-unlocked]:before { content:'\e08b'; } |
||||
|
||||
.oi[data-glyph=loop-circular]:before { content:'\e08c'; } |
||||
|
||||
.oi[data-glyph=loop-square]:before { content:'\e08d'; } |
||||
|
||||
.oi[data-glyph=loop]:before { content:'\e08e'; } |
||||
|
||||
.oi[data-glyph=magnifying-glass]:before { content:'\e08f'; } |
||||
|
||||
.oi[data-glyph=map-marker]:before { content:'\e090'; } |
||||
|
||||
.oi[data-glyph=map]:before { content:'\e091'; } |
||||
|
||||
.oi[data-glyph=media-pause]:before { content:'\e092'; } |
||||
|
||||
.oi[data-glyph=media-play]:before { content:'\e093'; } |
||||
|
||||
.oi[data-glyph=media-record]:before { content:'\e094'; } |
||||
|
||||
.oi[data-glyph=media-skip-backward]:before { content:'\e095'; } |
||||
|
||||
.oi[data-glyph=media-skip-forward]:before { content:'\e096'; } |
||||
|
||||
.oi[data-glyph=media-step-backward]:before { content:'\e097'; } |
||||
|
||||
.oi[data-glyph=media-step-forward]:before { content:'\e098'; } |
||||
|
||||
.oi[data-glyph=media-stop]:before { content:'\e099'; } |
||||
|
||||
.oi[data-glyph=medical-cross]:before { content:'\e09a'; } |
||||
|
||||
.oi[data-glyph=menu]:before { content:'\e09b'; } |
||||
|
||||
.oi[data-glyph=microphone]:before { content:'\e09c'; } |
||||
|
||||
.oi[data-glyph=minus]:before { content:'\e09d'; } |
||||
|
||||
.oi[data-glyph=monitor]:before { content:'\e09e'; } |
||||
|
||||
.oi[data-glyph=moon]:before { content:'\e09f'; } |
||||
|
||||
.oi[data-glyph=move]:before { content:'\e0a0'; } |
||||
|
||||
.oi[data-glyph=musical-note]:before { content:'\e0a1'; } |
||||
|
||||
.oi[data-glyph=paperclip]:before { content:'\e0a2'; } |
||||
|
||||
.oi[data-glyph=pencil]:before { content:'\e0a3'; } |
||||
|
||||
.oi[data-glyph=people]:before { content:'\e0a4'; } |
||||
|
||||
.oi[data-glyph=person]:before { content:'\e0a5'; } |
||||
|
||||
.oi[data-glyph=phone]:before { content:'\e0a6'; } |
||||
|
||||
.oi[data-glyph=pie-chart]:before { content:'\e0a7'; } |
||||
|
||||
.oi[data-glyph=pin]:before { content:'\e0a8'; } |
||||
|
||||
.oi[data-glyph=play-circle]:before { content:'\e0a9'; } |
||||
|
||||
.oi[data-glyph=plus]:before { content:'\e0aa'; } |
||||
|
||||
.oi[data-glyph=power-standby]:before { content:'\e0ab'; } |
||||
|
||||
.oi[data-glyph=print]:before { content:'\e0ac'; } |
||||
|
||||
.oi[data-glyph=project]:before { content:'\e0ad'; } |
||||
|
||||
.oi[data-glyph=pulse]:before { content:'\e0ae'; } |
||||
|
||||
.oi[data-glyph=puzzle-piece]:before { content:'\e0af'; } |
||||
|
||||
.oi[data-glyph=question-mark]:before { content:'\e0b0'; } |
||||
|
||||
.oi[data-glyph=rain]:before { content:'\e0b1'; } |
||||
|
||||
.oi[data-glyph=random]:before { content:'\e0b2'; } |
||||
|
||||
.oi[data-glyph=reload]:before { content:'\e0b3'; } |
||||
|
||||
.oi[data-glyph=resize-both]:before { content:'\e0b4'; } |
||||
|
||||
.oi[data-glyph=resize-height]:before { content:'\e0b5'; } |
||||
|
||||
.oi[data-glyph=resize-width]:before { content:'\e0b6'; } |
||||
|
||||
.oi[data-glyph=rss-alt]:before { content:'\e0b7'; } |
||||
|
||||
.oi[data-glyph=rss]:before { content:'\e0b8'; } |
||||
|
||||
.oi[data-glyph=script]:before { content:'\e0b9'; } |
||||
|
||||
.oi[data-glyph=share-boxed]:before { content:'\e0ba'; } |
||||
|
||||
.oi[data-glyph=share]:before { content:'\e0bb'; } |
||||
|
||||
.oi[data-glyph=shield]:before { content:'\e0bc'; } |
||||
|
||||
.oi[data-glyph=signal]:before { content:'\e0bd'; } |
||||
|
||||
.oi[data-glyph=signpost]:before { content:'\e0be'; } |
||||
|
||||
.oi[data-glyph=sort-ascending]:before { content:'\e0bf'; } |
||||
|
||||
.oi[data-glyph=sort-descending]:before { content:'\e0c0'; } |
||||
|
||||
.oi[data-glyph=spreadsheet]:before { content:'\e0c1'; } |
||||
|
||||
.oi[data-glyph=star]:before { content:'\e0c2'; } |
||||
|
||||
.oi[data-glyph=sun]:before { content:'\e0c3'; } |
||||
|
||||
.oi[data-glyph=tablet]:before { content:'\e0c4'; } |
||||
|
||||
.oi[data-glyph=tag]:before { content:'\e0c5'; } |
||||
|
||||
.oi[data-glyph=tags]:before { content:'\e0c6'; } |
||||
|
||||
.oi[data-glyph=target]:before { content:'\e0c7'; } |
||||
|
||||
.oi[data-glyph=task]:before { content:'\e0c8'; } |
||||
|
||||
.oi[data-glyph=terminal]:before { content:'\e0c9'; } |
||||
|
||||
.oi[data-glyph=text]:before { content:'\e0ca'; } |
||||
|
||||
.oi[data-glyph=thumb-down]:before { content:'\e0cb'; } |
||||
|
||||
.oi[data-glyph=thumb-up]:before { content:'\e0cc'; } |
||||
|
||||
.oi[data-glyph=timer]:before { content:'\e0cd'; } |
||||
|
||||
.oi[data-glyph=transfer]:before { content:'\e0ce'; } |
||||
|
||||
.oi[data-glyph=trash]:before { content:'\e0cf'; } |
||||
|
||||
.oi[data-glyph=underline]:before { content:'\e0d0'; } |
||||
|
||||
.oi[data-glyph=vertical-align-bottom]:before { content:'\e0d1'; } |
||||
|
||||
.oi[data-glyph=vertical-align-center]:before { content:'\e0d2'; } |
||||
|
||||
.oi[data-glyph=vertical-align-top]:before { content:'\e0d3'; } |
||||
|
||||
.oi[data-glyph=video]:before { content:'\e0d4'; } |
||||
|
||||
.oi[data-glyph=volume-high]:before { content:'\e0d5'; } |
||||
|
||||
.oi[data-glyph=volume-low]:before { content:'\e0d6'; } |
||||
|
||||
.oi[data-glyph=volume-off]:before { content:'\e0d7'; } |
||||
|
||||
.oi[data-glyph=warning]:before { content:'\e0d8'; } |
||||
|
||||
.oi[data-glyph=wifi]:before { content:'\e0d9'; } |
||||
|
||||
.oi[data-glyph=wrench]:before { content:'\e0da'; } |
||||
|
||||
.oi[data-glyph=x]:before { content:'\e0db'; } |
||||
|
||||
.oi[data-glyph=yen]:before { content:'\e0dc'; } |
||||
|
||||
.oi[data-glyph=zoom-in]:before { content:'\e0dd'; } |
||||
|
||||
.oi[data-glyph=zoom-out]:before { content:'\e0de'; } |
@ -0,0 +1,962 @@
@@ -0,0 +1,962 @@
|
||||
@iconic-font-path: '../fonts/'; |
||||
|
||||
@font-face { |
||||
font-family: 'Icons'; |
||||
src: url('@{iconic-font-path}open-iconic.eot'); |
||||
src: url('@{iconic-font-path}open-iconic.eot?#iconic-sm') format('embedded-opentype'), url('@{iconic-font-path}open-iconic.woff') format('woff'), url('@{iconic-font-path}open-iconic.ttf') format('truetype'), url('@{iconic-font-path}open-iconic.otf') format('opentype'), url('@{iconic-font-path}open-iconic.svg#iconic-sm') format('svg'); |
||||
font-weight: normal; |
||||
font-style: normal; |
||||
} |
||||
|
||||
.oi[data-glyph].oi-text-replace { |
||||
font-size: 0; |
||||
line-height: 0; |
||||
} |
||||
|
||||
.oi[data-glyph].oi-text-replace:before { |
||||
width: 1em; |
||||
text-align: center; |
||||
} |
||||
|
||||
.oi[data-glyph] { |
||||
&:before { |
||||
position: relative; |
||||
top: 1px; |
||||
font-family: 'Icons'; |
||||
display: inline-block; |
||||
speak: none; |
||||
line-height: 1; |
||||
vertical-align: baseline; |
||||
font-weight: normal; |
||||
font-style: normal; |
||||
-webkit-font-smoothing: antialiased; |
||||
-moz-osx-font-smoothing: grayscale; |
||||
} |
||||
|
||||
&:empty:before { |
||||
width: 1em; |
||||
text-align: center; |
||||
box-sizing: content-box; |
||||
} |
||||
|
||||
&.oi-align-left:before { |
||||
text-align: left; |
||||
} |
||||
&.oi-align-right:before { |
||||
text-align: right; |
||||
} |
||||
&.oi-align-center:before { |
||||
text-align: center; |
||||
} |
||||
|
||||
&.oi-flip-horizontal:before { |
||||
-webkit-transform: scale(-1, 1); |
||||
-ms-transform: scale(-1, 1); |
||||
transform: scale(-1, 1); |
||||
} |
||||
|
||||
&.oi-flip-vertical:before { |
||||
-webkit-transform: scale(1, -1); |
||||
-ms-transform: scale(-1, 1); |
||||
transform: scale(1, -1); |
||||
} |
||||
|
||||
&.oi-flip-horizontal-vertical:before { |
||||
-webkit-transform: scale(-1, -1); |
||||
-ms-transform: scale(-1, 1); |
||||
transform: scale(-1, -1); |
||||
} |
||||
} |
||||
|
||||
|
||||
.oi[data-glyph=account-login]:before { |
||||
content: '\e000'; |
||||
} |
||||
|
||||
.oi[data-glyph=account-logout]:before { |
||||
content: '\e001'; |
||||
} |
||||
|
||||
.oi[data-glyph=action-redo]:before { |
||||
content: '\e002'; |
||||
} |
||||
|
||||
.oi[data-glyph=action-undo]:before { |
||||
content: '\e003'; |
||||
} |
||||
|
||||
.oi[data-glyph=align-center]:before { |
||||
content: '\e004'; |
||||
} |
||||
|
||||
.oi[data-glyph=align-left]:before { |
||||
content: '\e005'; |
||||
} |
||||
|
||||
.oi[data-glyph=align-right]:before { |
||||
content: '\e006'; |
||||
} |
||||
|
||||
.oi[data-glyph=aperture]:before { |
||||
content: '\e007'; |
||||
} |
||||
|
||||
.oi[data-glyph=arrow-bottom]:before { |
||||
content: '\e008'; |
||||
} |
||||
|
||||
.oi[data-glyph=arrow-circle-bottom]:before { |
||||
content: '\e009'; |
||||
} |
||||
|
||||
.oi[data-glyph=arrow-circle-left]:before { |
||||
content: '\e00a'; |
||||
} |
||||
|
||||
.oi[data-glyph=arrow-circle-right]:before { |
||||
content: '\e00b'; |
||||
} |
||||
|
||||
.oi[data-glyph=arrow-circle-top]:before { |
||||
content: '\e00c'; |
||||
} |
||||
|
||||
.oi[data-glyph=arrow-left]:before { |
||||
content: '\e00d'; |
||||
} |
||||
|
||||
.oi[data-glyph=arrow-right]:before { |
||||
content: '\e00e'; |
||||
} |
||||
|
||||
.oi[data-glyph=arrow-thick-bottom]:before { |
||||
content: '\e00f'; |
||||
} |
||||
|
||||
.oi[data-glyph=arrow-thick-left]:before { |
||||
content: '\e010'; |
||||
} |
||||
|
||||
.oi[data-glyph=arrow-thick-right]:before { |
||||
content: '\e011'; |
||||
} |
||||
|
||||
.oi[data-glyph=arrow-thick-top]:before { |
||||
content: '\e012'; |
||||
} |
||||
|
||||
.oi[data-glyph=arrow-top]:before { |
||||
content: '\e013'; |
||||
} |
||||
|
||||
.oi[data-glyph=audio-spectrum]:before { |
||||
content: '\e014'; |
||||
} |
||||
|
||||
.oi[data-glyph=audio]:before { |
||||
content: '\e015'; |
||||
} |
||||
|
||||
.oi[data-glyph=badge]:before { |
||||
content: '\e016'; |
||||
} |
||||
|
||||
.oi[data-glyph=ban]:before { |
||||
content: '\e017'; |
||||
} |
||||
|
||||
.oi[data-glyph=bar-chart]:before { |
||||
content: '\e018'; |
||||
} |
||||
|
||||
.oi[data-glyph=basket]:before { |
||||
content: '\e019'; |
||||
} |
||||
|
||||
.oi[data-glyph=battery-empty]:before { |
||||
content: '\e01a'; |
||||
} |
||||
|
||||
.oi[data-glyph=battery-full]:before { |
||||
content: '\e01b'; |
||||
} |
||||
|
||||
.oi[data-glyph=beaker]:before { |
||||
content: '\e01c'; |
||||
} |
||||
|
||||
.oi[data-glyph=bell]:before { |
||||
content: '\e01d'; |
||||
} |
||||
|
||||
.oi[data-glyph=bluetooth]:before { |
||||
content: '\e01e'; |
||||
} |
||||
|
||||
.oi[data-glyph=bold]:before { |
||||
content: '\e01f'; |
||||
} |
||||
|
||||
.oi[data-glyph=bolt]:before { |
||||
content: '\e020'; |
||||
} |
||||
|
||||
.oi[data-glyph=book]:before { |
||||
content: '\e021'; |
||||
} |
||||
|
||||
.oi[data-glyph=bookmark]:before { |
||||
content: '\e022'; |
||||
} |
||||
|
||||
.oi[data-glyph=box]:before { |
||||
content: '\e023'; |
||||
} |
||||
|
||||
.oi[data-glyph=briefcase]:before { |
||||
content: '\e024'; |
||||
} |
||||
|
||||
.oi[data-glyph=british-pound]:before { |
||||
content: '\e025'; |
||||
} |
||||
|
||||
.oi[data-glyph=browser]:before { |
||||
content: '\e026'; |
||||
} |
||||
|
||||
.oi[data-glyph=brush]:before { |
||||
content: '\e027'; |
||||
} |
||||
|
||||
.oi[data-glyph=bug]:before { |
||||
content: '\e028'; |
||||
} |
||||
|
||||
.oi[data-glyph=bullhorn]:before { |
||||
content: '\e029'; |
||||
} |
||||
|
||||
.oi[data-glyph=calculator]:before { |
||||
content: '\e02a'; |
||||
} |
||||
|
||||
.oi[data-glyph=calendar]:before { |
||||
content: '\e02b'; |
||||
} |
||||
|
||||
.oi[data-glyph=camera-slr]:before { |
||||
content: '\e02c'; |
||||
} |
||||
|
||||
.oi[data-glyph=caret-bottom]:before { |
||||
content: '\e02d'; |
||||
} |
||||
|
||||
.oi[data-glyph=caret-left]:before { |
||||
content: '\e02e'; |
||||
} |
||||
|
||||
.oi[data-glyph=caret-right]:before { |
||||
content: '\e02f'; |
||||
} |
||||
|
||||
.oi[data-glyph=caret-top]:before { |
||||
content: '\e030'; |
||||
} |
||||
|
||||
.oi[data-glyph=cart]:before { |
||||
content: '\e031'; |
||||
} |
||||
|
||||
.oi[data-glyph=chat]:before { |
||||
content: '\e032'; |
||||
} |
||||
|
||||
.oi[data-glyph=check]:before { |
||||
content: '\e033'; |
||||
} |
||||
|
||||
.oi[data-glyph=chevron-bottom]:before { |
||||
content: '\e034'; |
||||
} |
||||
|
||||
.oi[data-glyph=chevron-left]:before { |
||||
content: '\e035'; |
||||
} |
||||
|
||||
.oi[data-glyph=chevron-right]:before { |
||||
content: '\e036'; |
||||
} |
||||
|
||||
.oi[data-glyph=chevron-top]:before { |
||||
content: '\e037'; |
||||
} |
||||
|
||||
.oi[data-glyph=circle-check]:before { |
||||
content: '\e038'; |
||||
} |
||||
|
||||
.oi[data-glyph=circle-x]:before { |
||||
content: '\e039'; |
||||
} |
||||
|
||||
.oi[data-glyph=clipboard]:before { |
||||
content: '\e03a'; |
||||
} |
||||
|
||||
.oi[data-glyph=clock]:before { |
||||
content: '\e03b'; |
||||
} |
||||
|
||||
.oi[data-glyph=cloud-download]:before { |
||||
content: '\e03c'; |
||||
} |
||||
|
||||
.oi[data-glyph=cloud-upload]:before { |
||||
content: '\e03d'; |
||||
} |
||||
|
||||
.oi[data-glyph=cloud]:before { |
||||
content: '\e03e'; |
||||
} |
||||
|
||||
.oi[data-glyph=cloudy]:before { |
||||
content: '\e03f'; |
||||
} |
||||
|
||||
.oi[data-glyph=code]:before { |
||||
content: '\e040'; |
||||
} |
||||
|
||||
.oi[data-glyph=cog]:before { |
||||
content: '\e041'; |
||||
} |
||||
|
||||
.oi[data-glyph=collapse-down]:before { |
||||
content: '\e042'; |
||||
} |
||||
|
||||
.oi[data-glyph=collapse-left]:before { |
||||
content: '\e043'; |
||||
} |
||||
|
||||
.oi[data-glyph=collapse-right]:before { |
||||
content: '\e044'; |
||||
} |
||||
|
||||
.oi[data-glyph=collapse-up]:before { |
||||
content: '\e045'; |
||||
} |
||||
|
||||
.oi[data-glyph=command]:before { |
||||
content: '\e046'; |
||||
} |
||||
|
||||
.oi[data-glyph=comment-square]:before { |
||||
content: '\e047'; |
||||
} |
||||
|
||||
.oi[data-glyph=compass]:before { |
||||
content: '\e048'; |
||||
} |
||||
|
||||
.oi[data-glyph=contrast]:before { |
||||
content: '\e049'; |
||||
} |
||||
|
||||
.oi[data-glyph=copywriting]:before { |
||||
content: '\e04a'; |
||||
} |
||||
|
||||
.oi[data-glyph=credit-card]:before { |
||||
content: '\e04b'; |
||||
} |
||||
|
||||
.oi[data-glyph=crop]:before { |
||||
content: '\e04c'; |
||||
} |
||||
|
||||
.oi[data-glyph=dashboard]:before { |
||||
content: '\e04d'; |
||||
} |
||||
|
||||
.oi[data-glyph=data-transfer-download]:before { |
||||
content: '\e04e'; |
||||
} |
||||
|
||||
.oi[data-glyph=data-transfer-upload]:before { |
||||
content: '\e04f'; |
||||
} |
||||
|
||||
.oi[data-glyph=delete]:before { |
||||
content: '\e050'; |
||||
} |
||||
|
||||
.oi[data-glyph=dial]:before { |
||||
content: '\e051'; |
||||
} |
||||
|
||||
.oi[data-glyph=document]:before { |
||||
content: '\e052'; |
||||
} |
||||
|
||||
.oi[data-glyph=dollar]:before { |
||||
content: '\e053'; |
||||
} |
||||
|
||||
.oi[data-glyph=double-quote-sans-left]:before { |
||||
content: '\e054'; |
||||
} |
||||
|
||||
.oi[data-glyph=double-quote-sans-right]:before { |
||||
content: '\e055'; |
||||
} |
||||
|
||||
.oi[data-glyph=double-quote-serif-left]:before { |
||||
content: '\e056'; |
||||
} |
||||
|
||||
.oi[data-glyph=double-quote-serif-right]:before { |
||||
content: '\e057'; |
||||
} |
||||
|
||||
.oi[data-glyph=droplet]:before { |
||||
content: '\e058'; |
||||
} |
||||
|
||||
.oi[data-glyph=eject]:before { |
||||
content: '\e059'; |
||||
} |
||||
|
||||
.oi[data-glyph=elevator]:before { |
||||
content: '\e05a'; |
||||
} |
||||
|
||||
.oi[data-glyph=ellipses]:before { |
||||
content: '\e05b'; |
||||
} |
||||
|
||||
.oi[data-glyph=envelope-closed]:before { |
||||
content: '\e05c'; |
||||
} |
||||
|
||||
.oi[data-glyph=envelope-open]:before { |
||||
content: '\e05d'; |
||||
} |
||||
|
||||
.oi[data-glyph=euro]:before { |
||||
content: '\e05e'; |
||||
} |
||||
|
||||
.oi[data-glyph=excerpt]:before { |
||||
content: '\e05f'; |
||||
} |
||||
|
||||
.oi[data-glyph=expand-down]:before { |
||||
content: '\e060'; |
||||
} |
||||
|
||||
.oi[data-glyph=expand-left]:before { |
||||
content: '\e061'; |
||||
} |
||||
|
||||
.oi[data-glyph=expand-right]:before { |
||||
content: '\e062'; |
||||
} |
||||
|
||||
.oi[data-glyph=expand-up]:before { |
||||
content: '\e063'; |
||||
} |
||||
|
||||
.oi[data-glyph=external-link]:before { |
||||
content: '\e064'; |
||||
} |
||||
|
||||
.oi[data-glyph=eye]:before { |
||||
content: '\e065'; |
||||
} |
||||
|
||||
.oi[data-glyph=eyedropper]:before { |
||||
content: '\e066'; |
||||
} |
||||
|
||||
.oi[data-glyph=file]:before { |
||||
content: '\e067'; |
||||
} |
||||
|
||||
.oi[data-glyph=fire]:before { |
||||
content: '\e068'; |
||||
} |
||||
|
||||
.oi[data-glyph=flag]:before { |
||||
content: '\e069'; |
||||
} |
||||
|
||||
.oi[data-glyph=flash]:before { |
||||
content: '\e06a'; |
||||
} |
||||
|
||||
.oi[data-glyph=folder]:before { |
||||
content: '\e06b'; |
||||
} |
||||
|
||||
.oi[data-glyph=fork]:before { |
||||
content: '\e06c'; |
||||
} |
||||
|
||||
.oi[data-glyph=fullscreen-enter]:before { |
||||
content: '\e06d'; |
||||
} |
||||
|
||||
.oi[data-glyph=fullscreen-exit]:before { |
||||
content: '\e06e'; |
||||
} |
||||
|
||||
.oi[data-glyph=globe]:before { |
||||
content: '\e06f'; |
||||
} |
||||
|
||||
.oi[data-glyph=graph]:before { |
||||
content: '\e070'; |
||||
} |
||||
|
||||
.oi[data-glyph=grid-four-up]:before { |
||||
content: '\e071'; |
||||
} |
||||
|
||||
.oi[data-glyph=grid-three-up]:before { |
||||
content: '\e072'; |
||||
} |
||||
|
||||
.oi[data-glyph=grid-two-up]:before { |
||||
content: '\e073'; |
||||
} |
||||
|
||||
.oi[data-glyph=hard-drive]:before { |
||||
content: '\e074'; |
||||
} |
||||
|
||||
.oi[data-glyph=header]:before { |
||||
content: '\e075'; |
||||
} |
||||
|
||||
.oi[data-glyph=headphones]:before { |
||||
content: '\e076'; |
||||
} |
||||
|
||||
.oi[data-glyph=heart]:before { |
||||
content: '\e077'; |
||||
} |
||||
|
||||
.oi[data-glyph=home]:before { |
||||
content: '\e078'; |
||||
} |
||||
|
||||
.oi[data-glyph=image]:before { |
||||
content: '\e079'; |
||||
} |
||||
|
||||
.oi[data-glyph=inbox]:before { |
||||
content: '\e07a'; |
||||
} |
||||
|
||||
.oi[data-glyph=infinity]:before { |
||||
content: '\e07b'; |
||||
} |
||||
|
||||
.oi[data-glyph=info]:before { |
||||
content: '\e07c'; |
||||
} |
||||
|
||||
.oi[data-glyph=italic]:before { |
||||
content: '\e07d'; |
||||
} |
||||
|
||||
.oi[data-glyph=justify-center]:before { |
||||
content: '\e07e'; |
||||
} |
||||
|
||||
.oi[data-glyph=justify-left]:before { |
||||
content: '\e07f'; |
||||
} |
||||
|
||||
.oi[data-glyph=justify-right]:before { |
||||
content: '\e080'; |
||||
} |
||||
|
||||
.oi[data-glyph=key]:before { |
||||
content: '\e081'; |
||||
} |
||||
|
||||
.oi[data-glyph=laptop]:before { |
||||
content: '\e082'; |
||||
} |
||||
|
||||
.oi[data-glyph=layers]:before { |
||||
content: '\e083'; |
||||
} |
||||
|
||||
.oi[data-glyph=lightbulb]:before { |
||||
content: '\e084'; |
||||
} |
||||
|
||||
.oi[data-glyph=link-broken]:before { |
||||
content: '\e085'; |
||||
} |
||||
|
||||
.oi[data-glyph=link-intact]:before { |
||||
content: '\e086'; |
||||
} |
||||
|
||||
.oi[data-glyph=list-rich]:before { |
||||
content: '\e087'; |
||||
} |
||||
|
||||
.oi[data-glyph=list]:before { |
||||
content: '\e088'; |
||||
} |
||||
|
||||
.oi[data-glyph=location]:before { |
||||
content: '\e089'; |
||||
} |
||||
|
||||
.oi[data-glyph=lock-locked]:before { |
||||
content: '\e08a'; |
||||
} |
||||
|
||||
.oi[data-glyph=lock-unlocked]:before { |
||||
content: '\e08b'; |
||||
} |
||||
|
||||
.oi[data-glyph=loop-circular]:before { |
||||
content: '\e08c'; |
||||
} |
||||
|
||||
.oi[data-glyph=loop-square]:before { |
||||
content: '\e08d'; |
||||
} |
||||
|
||||
.oi[data-glyph=loop]:before { |
||||
content: '\e08e'; |
||||
} |
||||
|
||||
.oi[data-glyph=magnifying-glass]:before { |
||||
content: '\e08f'; |
||||
} |
||||
|
||||
.oi[data-glyph=map-marker]:before { |
||||
content: '\e090'; |
||||
} |
||||
|
||||
.oi[data-glyph=map]:before { |
||||
content: '\e091'; |
||||
} |
||||
|
||||
.oi[data-glyph=media-pause]:before { |
||||
content: '\e092'; |
||||
} |
||||
|
||||
.oi[data-glyph=media-play]:before { |
||||
content: '\e093'; |
||||
} |
||||
|
||||
.oi[data-glyph=media-record]:before { |
||||
content: '\e094'; |
||||
} |
||||
|
||||
.oi[data-glyph=media-skip-backward]:before { |
||||
content: '\e095'; |
||||
} |
||||
|
||||
.oi[data-glyph=media-skip-forward]:before { |
||||
content: '\e096'; |
||||
} |
||||
|
||||
.oi[data-glyph=media-step-backward]:before { |
||||
content: '\e097'; |
||||
} |
||||
|
||||
.oi[data-glyph=media-step-forward]:before { |
||||
content: '\e098'; |
||||
} |
||||
|
||||
.oi[data-glyph=media-stop]:before { |
||||
content: '\e099'; |
||||
} |
||||
|
||||
.oi[data-glyph=medical-cross]:before { |
||||
content: '\e09a'; |
||||
} |
||||
|
||||
.oi[data-glyph=menu]:before { |
||||
content: '\e09b'; |
||||
} |
||||
|
||||
.oi[data-glyph=microphone]:before { |
||||
content: '\e09c'; |
||||
} |
||||
|
||||
.oi[data-glyph=minus]:before { |
||||
content: '\e09d'; |
||||
} |
||||
|
||||
.oi[data-glyph=monitor]:before { |
||||
content: '\e09e'; |
||||
} |
||||
|
||||
.oi[data-glyph=moon]:before { |
||||
content: '\e09f'; |
||||
} |
||||
|
||||
.oi[data-glyph=move]:before { |
||||
content: '\e0a0'; |
||||
} |
||||
|
||||
.oi[data-glyph=musical-note]:before { |
||||
content: '\e0a1'; |
||||
} |
||||
|
||||
.oi[data-glyph=paperclip]:before { |
||||
content: '\e0a2'; |
||||
} |
||||
|
||||
.oi[data-glyph=pencil]:before { |
||||
content: '\e0a3'; |
||||
} |
||||
|
||||
.oi[data-glyph=people]:before { |
||||
content: '\e0a4'; |
||||
} |
||||
|
||||
.oi[data-glyph=person]:before { |
||||
content: '\e0a5'; |
||||
} |
||||
|
||||
.oi[data-glyph=phone]:before { |
||||
content: '\e0a6'; |
||||
} |
||||
|
||||
.oi[data-glyph=pie-chart]:before { |
||||
content: '\e0a7'; |
||||
} |
||||
|
||||
.oi[data-glyph=pin]:before { |
||||
content: '\e0a8'; |
||||
} |
||||
|
||||
.oi[data-glyph=play-circle]:before { |
||||
content: '\e0a9'; |
||||
} |
||||
|
||||
.oi[data-glyph=plus]:before { |
||||
content: '\e0aa'; |
||||
} |
||||
|
||||
.oi[data-glyph=power-standby]:before { |
||||
content: '\e0ab'; |
||||
} |
||||
|
||||
.oi[data-glyph=print]:before { |
||||
content: '\e0ac'; |
||||
} |
||||
|
||||
.oi[data-glyph=project]:before { |
||||
content: '\e0ad'; |
||||
} |
||||
|
||||
.oi[data-glyph=pulse]:before { |
||||
content: '\e0ae'; |
||||
} |
||||
|
||||
.oi[data-glyph=puzzle-piece]:before { |
||||
content: '\e0af'; |
||||
} |
||||
|
||||
.oi[data-glyph=question-mark]:before { |
||||
content: '\e0b0'; |
||||
} |
||||
|
||||
.oi[data-glyph=rain]:before { |
||||
content: '\e0b1'; |
||||
} |
||||
|
||||
.oi[data-glyph=random]:before { |
||||
content: '\e0b2'; |
||||
} |
||||
|
||||
.oi[data-glyph=reload]:before { |
||||
content: '\e0b3'; |
||||
} |
||||
|
||||
.oi[data-glyph=resize-both]:before { |
||||
content: '\e0b4'; |
||||
} |
||||
|
||||
.oi[data-glyph=resize-height]:before { |
||||
content: '\e0b5'; |
||||
} |
||||
|
||||
.oi[data-glyph=resize-width]:before { |
||||
content: '\e0b6'; |
||||
} |
||||
|
||||
.oi[data-glyph=rss-alt]:before { |
||||
content: '\e0b7'; |
||||
} |
||||
|
||||
.oi[data-glyph=rss]:before { |
||||
content: '\e0b8'; |
||||
} |
||||
|
||||
.oi[data-glyph=script]:before { |
||||
content: '\e0b9'; |
||||
} |
||||
|
||||
.oi[data-glyph=share-boxed]:before { |
||||
content: '\e0ba'; |
||||
} |
||||
|
||||
.oi[data-glyph=share]:before { |
||||
content: '\e0bb'; |
||||
} |
||||
|
||||
.oi[data-glyph=shield]:before { |
||||
content: '\e0bc'; |
||||
} |
||||
|
||||
.oi[data-glyph=signal]:before { |
||||
content: '\e0bd'; |
||||
} |
||||
|
||||
.oi[data-glyph=signpost]:before { |
||||
content: '\e0be'; |
||||
} |
||||
|
||||
.oi[data-glyph=sort-ascending]:before { |
||||
content: '\e0bf'; |
||||
} |
||||
|
||||
.oi[data-glyph=sort-descending]:before { |
||||
content: '\e0c0'; |
||||
} |
||||
|
||||
.oi[data-glyph=spreadsheet]:before { |
||||
content: '\e0c1'; |
||||
} |
||||
|
||||
.oi[data-glyph=star]:before { |
||||
content: '\e0c2'; |
||||
} |
||||
|
||||
.oi[data-glyph=sun]:before { |
||||
content: '\e0c3'; |
||||
} |
||||
|
||||
.oi[data-glyph=tablet]:before { |
||||
content: '\e0c4'; |
||||
} |
||||
|
||||
.oi[data-glyph=tag]:before { |
||||
content: '\e0c5'; |
||||
} |
||||
|
||||
.oi[data-glyph=tags]:before { |
||||
content: '\e0c6'; |
||||
} |
||||
|
||||
.oi[data-glyph=target]:before { |
||||
content: '\e0c7'; |
||||
} |
||||
|
||||
.oi[data-glyph=task]:before { |
||||
content: '\e0c8'; |
||||
} |
||||
|
||||
.oi[data-glyph=terminal]:before { |
||||
content: '\e0c9'; |
||||
} |
||||
|
||||
.oi[data-glyph=text]:before { |
||||
content: '\e0ca'; |
||||
} |
||||
|
||||
.oi[data-glyph=thumb-down]:before { |
||||
content: '\e0cb'; |
||||
} |
||||
|
||||
.oi[data-glyph=thumb-up]:before { |
||||
content: '\e0cc'; |
||||
} |
||||
|
||||
.oi[data-glyph=timer]:before { |
||||
content: '\e0cd'; |
||||
} |
||||
|
||||
.oi[data-glyph=transfer]:before { |
||||
content: '\e0ce'; |
||||
} |
||||
|
||||
.oi[data-glyph=trash]:before { |
||||
content: '\e0cf'; |
||||
} |
||||
|
||||
.oi[data-glyph=underline]:before { |
||||
content: '\e0d0'; |
||||
} |
||||
|
||||
.oi[data-glyph=vertical-align-bottom]:before { |
||||
content: '\e0d1'; |
||||
} |
||||
|
||||
.oi[data-glyph=vertical-align-center]:before { |
||||
content: '\e0d2'; |
||||
} |
||||
|
||||
.oi[data-glyph=vertical-align-top]:before { |
||||
content: '\e0d3'; |
||||
} |
||||
|
||||
.oi[data-glyph=video]:before { |
||||
content: '\e0d4'; |
||||
} |
||||
|
||||
.oi[data-glyph=volume-high]:before { |
||||
content: '\e0d5'; |
||||
} |
||||
|
||||
.oi[data-glyph=volume-low]:before { |
||||
content: '\e0d6'; |
||||
} |
||||
|
||||
.oi[data-glyph=volume-off]:before { |
||||
content: '\e0d7'; |
||||
} |
||||
|
||||
.oi[data-glyph=warning]:before { |
||||
content: '\e0d8'; |
||||
} |
||||
|
||||
.oi[data-glyph=wifi]:before { |
||||
content: '\e0d9'; |
||||
} |
||||
|
||||
.oi[data-glyph=wrench]:before { |
||||
content: '\e0da'; |
||||
} |
||||
|
||||
.oi[data-glyph=x]:before { |
||||
content: '\e0db'; |
||||
} |
||||
|
||||
.oi[data-glyph=yen]:before { |
||||
content: '\e0dc'; |
||||
} |
||||
|
||||
.oi[data-glyph=zoom-in]:before { |
||||
content: '\e0dd'; |
||||
} |
||||
|
||||
.oi[data-glyph=zoom-out]:before { |
||||
content: '\e0de'; |
||||
} |
@ -0,0 +1,963 @@
@@ -0,0 +1,963 @@
|
||||
$iconic-font-path: '../fonts/' !default; |
||||
|
||||
@font-face { |
||||
font-family: 'Icons'; |
||||
src: url('#{$iconic-font-path}open-iconic.eot'); |
||||
src: url('#{$iconic-font-path}open-iconic.eot?#iconic-sm') format('embedded-opentype'), url('#{$iconic-font-path}open-iconic.woff') format('woff'), url('#{$iconic-font-path}open-iconic.ttf') format('truetype'), url('#{$iconic-font-path}open-iconic.otf') format('opentype'), url('#{$iconic-font-path}open-iconic.svg#iconic-sm') format('svg'); |
||||
font-weight: normal; |
||||
font-style: normal; |
||||
} |
||||
|
||||
.oi[data-glyph].oi-text-replace { |
||||
font-size: 0; |
||||
line-height: 0; |
||||
} |
||||
|
||||
.oi[data-glyph].oi-text-replace:before { |
||||
width: 1em; |
||||
text-align: center; |
||||
} |
||||
|
||||
.oi[data-glyph] { |
||||
&:before { |
||||
position: relative; |
||||
top: 1px; |
||||
font-family: 'Icons'; |
||||
display: inline-block; |
||||
speak: none; |
||||
line-height: 1; |
||||
vertical-align: baseline; |
||||
font-weight: normal; |
||||
font-style: normal; |
||||
-webkit-font-smoothing: antialiased; |
||||
-moz-osx-font-smoothing: grayscale; |
||||
} |
||||
|
||||
&:empty:before { |
||||
width: 1em; |
||||
text-align: center; |
||||
box-sizing: content-box; |
||||
} |
||||
|
||||
&.oi-align-left:before { |
||||
text-align: left; |
||||
} |
||||
&.oi-align-right:before { |
||||
text-align: right; |
||||
} |
||||
&.oi-align-center:before { |
||||
text-align: center; |
||||
} |
||||
|
||||
&.oi-flip-horizontal:before { |
||||
-webkit-transform: scale(-1, 1); |
||||
-ms-transform: scale(-1, 1); |
||||
transform: scale(-1, 1); |
||||
} |
||||
|
||||
&.oi-flip-vertical:before { |
||||
-webkit-transform: scale(1, -1); |
||||
-ms-transform: scale(-1, 1); |
||||
transform: scale(1, -1); |
||||
} |
||||
|
||||
&.oi-flip-horizontal-vertical:before { |
||||
-webkit-transform: scale(-1, -1); |
||||
-ms-transform: scale(-1, 1); |
||||
transform: scale(-1, -1); |
||||
} |
||||
} |
||||
|
||||
|
||||
.oi[data-glyph=account-login]:before { |
||||
content: '\e000'; |
||||
} |
||||
|
||||
.oi[data-glyph=account-logout]:before { |
||||
content: '\e001'; |
||||
} |
||||
|
||||
.oi[data-glyph=action-redo]:before { |
||||
content: '\e002'; |
||||
} |
||||
|
||||
.oi[data-glyph=action-undo]:before { |
||||
content: '\e003'; |
||||
} |
||||
|
||||
.oi[data-glyph=align-center]:before { |
||||
content: '\e004'; |
||||
} |
||||
|
||||
.oi[data-glyph=align-left]:before { |
||||
content: '\e005'; |
||||
} |
||||
|
||||
.oi[data-glyph=align-right]:before { |
||||
content: '\e006'; |
||||
} |
||||
|
||||
.oi[data-glyph=aperture]:before { |
||||
content: '\e007'; |
||||
} |
||||
|
||||
.oi[data-glyph=arrow-bottom]:before { |
||||
content: '\e008'; |
||||
} |
||||
|
||||
.oi[data-glyph=arrow-circle-bottom]:before { |
||||
content: '\e009'; |
||||
} |
||||
|
||||
.oi[data-glyph=arrow-circle-left]:before { |
||||
content: '\e00a'; |
||||
} |
||||
|
||||
.oi[data-glyph=arrow-circle-right]:before { |
||||
content: '\e00b'; |
||||
} |
||||
|
||||
.oi[data-glyph=arrow-circle-top]:before { |
||||
content: '\e00c'; |
||||
} |
||||
|
||||
.oi[data-glyph=arrow-left]:before { |
||||
content: '\e00d'; |
||||
} |
||||
|
||||
.oi[data-glyph=arrow-right]:before { |
||||
content: '\e00e'; |
||||
} |
||||
|
||||
.oi[data-glyph=arrow-thick-bottom]:before { |
||||
content: '\e00f'; |
||||
} |
||||
|
||||
.oi[data-glyph=arrow-thick-left]:before { |
||||
content: '\e010'; |
||||
} |
||||
|
||||
.oi[data-glyph=arrow-thick-right]:before { |
||||
content: '\e011'; |
||||
} |
||||
|
||||
.oi[data-glyph=arrow-thick-top]:before { |
||||
content: '\e012'; |
||||
} |
||||
|
||||
.oi[data-glyph=arrow-top]:before { |
||||
content: '\e013'; |
||||
} |
||||
|
||||
.oi[data-glyph=audio-spectrum]:before { |
||||
content: '\e014'; |
||||
} |
||||
|
||||
.oi[data-glyph=audio]:before { |
||||
content: '\e015'; |
||||
} |
||||
|
||||
.oi[data-glyph=badge]:before { |
||||
content: '\e016'; |
||||
} |
||||
|
||||
.oi[data-glyph=ban]:before { |
||||
content: '\e017'; |
||||
} |
||||
|
||||
.oi[data-glyph=bar-chart]:before { |
||||
content: '\e018'; |
||||
} |
||||
|
||||
.oi[data-glyph=basket]:before { |
||||
content: '\e019'; |
||||
} |
||||
|
||||
.oi[data-glyph=battery-empty]:before { |
||||
content: '\e01a'; |
||||
} |
||||
|
||||
.oi[data-glyph=battery-full]:before { |
||||
content: '\e01b'; |
||||
} |
||||
|
||||
.oi[data-glyph=beaker]:before { |
||||
content: '\e01c'; |
||||
} |
||||
|
||||
.oi[data-glyph=bell]:before { |
||||
content: '\e01d'; |
||||
} |
||||
|
||||
.oi[data-glyph=bluetooth]:before { |
||||
content: '\e01e'; |
||||
} |
||||
|
||||
.oi[data-glyph=bold]:before { |
||||
content: '\e01f'; |
||||
} |
||||
|
||||
.oi[data-glyph=bolt]:before { |
||||
content: '\e020'; |
||||
} |
||||
|
||||
.oi[data-glyph=book]:before { |
||||
content: '\e021'; |
||||
} |
||||
|
||||
.oi[data-glyph=bookmark]:before { |
||||
content: '\e022'; |
||||
} |
||||
|
||||
.oi[data-glyph=box]:before { |
||||
content: '\e023'; |
||||
} |
||||
|
||||
.oi[data-glyph=briefcase]:before { |
||||
content: '\e024'; |
||||
} |
||||
|
||||
.oi[data-glyph=british-pound]:before { |
||||
content: '\e025'; |
||||
} |
||||
|
||||
.oi[data-glyph=browser]:before { |
||||
content: '\e026'; |
||||
} |
||||
|
||||
.oi[data-glyph=brush]:before { |
||||
content: '\e027'; |
||||
} |
||||
|
||||
.oi[data-glyph=bug]:before { |
||||
content: '\e028'; |
||||
} |
||||
|
||||
.oi[data-glyph=bullhorn]:before { |
||||
content: '\e029'; |
||||
} |
||||
|
||||
.oi[data-glyph=calculator]:before { |
||||
content: '\e02a'; |
||||
} |
||||
|
||||
.oi[data-glyph=calendar]:before { |
||||
content: '\e02b'; |
||||
} |
||||
|
||||
.oi[data-glyph=camera-slr]:before { |
||||
content: '\e02c'; |
||||
} |
||||
|
||||
.oi[data-glyph=caret-bottom]:before { |
||||
content: '\e02d'; |
||||
} |
||||
|
||||
.oi[data-glyph=caret-left]:before { |
||||
content: '\e02e'; |
||||
} |
||||
|
||||
.oi[data-glyph=caret-right]:before { |
||||
content: '\e02f'; |
||||
} |
||||
|
||||
.oi[data-glyph=caret-top]:before { |
||||
content: '\e030'; |
||||
} |
||||
|
||||
.oi[data-glyph=cart]:before { |
||||
content: '\e031'; |
||||
} |
||||
|
||||
.oi[data-glyph=chat]:before { |
||||
content: '\e032'; |
||||
} |
||||
|
||||
.oi[data-glyph=check]:before { |
||||
content: '\e033'; |
||||
} |
||||
|
||||
.oi[data-glyph=chevron-bottom]:before { |
||||
content: '\e034'; |
||||
} |
||||
|
||||
.oi[data-glyph=chevron-left]:before { |
||||
content: '\e035'; |
||||
} |
||||
|
||||
.oi[data-glyph=chevron-right]:before { |
||||
content: '\e036'; |
||||
} |
||||
|
||||
.oi[data-glyph=chevron-top]:before { |
||||
content: '\e037'; |
||||
} |
||||
|
||||
.oi[data-glyph=circle-check]:before { |
||||
content: '\e038'; |
||||
} |
||||
|
||||
.oi[data-glyph=circle-x]:before { |
||||
content: '\e039'; |
||||
} |
||||
|
||||
.oi[data-glyph=clipboard]:before { |
||||
content: '\e03a'; |
||||
} |
||||
|
||||
.oi[data-glyph=clock]:before { |
||||
content: '\e03b'; |
||||
} |
||||
|
||||
.oi[data-glyph=cloud-download]:before { |
||||
content: '\e03c'; |
||||
} |
||||
|
||||
.oi[data-glyph=cloud-upload]:before { |
||||
content: '\e03d'; |
||||
} |
||||
|
||||
.oi[data-glyph=cloud]:before { |
||||
content: '\e03e'; |
||||
} |
||||
|
||||
.oi[data-glyph=cloudy]:before { |
||||
content: '\e03f'; |
||||
} |
||||
|
||||
.oi[data-glyph=code]:before { |
||||
content: '\e040'; |
||||
} |
||||
|
||||
.oi[data-glyph=cog]:before { |
||||
content: '\e041'; |
||||
} |
||||
|
||||
.oi[data-glyph=collapse-down]:before { |
||||
content: '\e042'; |
||||
} |
||||
|
||||
.oi[data-glyph=collapse-left]:before { |
||||
content: '\e043'; |
||||
} |
||||
|
||||
.oi[data-glyph=collapse-right]:before { |
||||
content: '\e044'; |
||||
} |
||||
|
||||
.oi[data-glyph=collapse-up]:before { |
||||
content: '\e045'; |
||||
} |
||||
|
||||
.oi[data-glyph=command]:before { |
||||
content: '\e046'; |
||||
} |
||||
|
||||
.oi[data-glyph=comment-square]:before { |
||||
content: '\e047'; |
||||
} |
||||
|
||||
.oi[data-glyph=compass]:before { |
||||
content: '\e048'; |
||||
} |
||||
|
||||
.oi[data-glyph=contrast]:before { |
||||
content: '\e049'; |
||||
} |
||||
|
||||
.oi[data-glyph=copywriting]:before { |
||||
content: '\e04a'; |
||||
} |
||||
|
||||
.oi[data-glyph=credit-card]:before { |
||||
content: '\e04b'; |
||||
} |
||||
|
||||
.oi[data-glyph=crop]:before { |
||||
content: '\e04c'; |
||||
} |
||||
|
||||
.oi[data-glyph=dashboard]:before { |
||||
content: '\e04d'; |
||||
} |
||||
|
||||
.oi[data-glyph=data-transfer-download]:before { |
||||
content: '\e04e'; |
||||
} |
||||
|
||||
.oi[data-glyph=data-transfer-upload]:before { |
||||
content: '\e04f'; |
||||
} |
||||
|
||||
.oi[data-glyph=delete]:before { |
||||
content: '\e050'; |
||||
} |
||||
|
||||
.oi[data-glyph=dial]:before { |
||||
content: '\e051'; |
||||
} |
||||
|
||||
.oi[data-glyph=document]:before { |
||||
content: '\e052'; |
||||
} |
||||
|
||||
.oi[data-glyph=dollar]:before { |
||||
content: '\e053'; |
||||
} |
||||
|
||||
.oi[data-glyph=double-quote-sans-left]:before { |
||||
content: '\e054'; |
||||
} |
||||
|
||||
.oi[data-glyph=double-quote-sans-right]:before { |
||||
content: '\e055'; |
||||
} |
||||
|
||||
.oi[data-glyph=double-quote-serif-left]:before { |
||||
content: '\e056'; |
||||
} |
||||
|
||||
.oi[data-glyph=double-quote-serif-right]:before { |
||||
content: '\e057'; |
||||
} |
||||
|
||||
.oi[data-glyph=droplet]:before { |
||||
content: '\e058'; |
||||
} |
||||
|
||||
.oi[data-glyph=eject]:before { |
||||
content: '\e059'; |
||||
} |
||||
|
||||
.oi[data-glyph=elevator]:before { |
||||
content: '\e05a'; |
||||
} |
||||
|
||||
.oi[data-glyph=ellipses]:before { |
||||
content: '\e05b'; |
||||
} |
||||
|
||||
.oi[data-glyph=envelope-closed]:before { |
||||
content: '\e05c'; |
||||
} |
||||
|
||||
.oi[data-glyph=envelope-open]:before { |
||||
content: '\e05d'; |
||||
} |
||||
|
||||
.oi[data-glyph=euro]:before { |
||||
content: '\e05e'; |
||||
} |
||||
|
||||
.oi[data-glyph=excerpt]:before { |
||||
content: '\e05f'; |
||||
} |
||||
|
||||
.oi[data-glyph=expand-down]:before { |
||||
content: '\e060'; |
||||
} |
||||
|
||||
.oi[data-glyph=expand-left]:before { |
||||
content: '\e061'; |
||||
} |
||||
|
||||
.oi[data-glyph=expand-right]:before { |
||||
content: '\e062'; |
||||
} |
||||
|
||||
.oi[data-glyph=expand-up]:before { |
||||
content: '\e063'; |
||||
} |
||||
|
||||
.oi[data-glyph=external-link]:before { |
||||
content: '\e064'; |
||||
} |
||||
|
||||
.oi[data-glyph=eye]:before { |
||||
content: '\e065'; |
||||
} |
||||
|
||||
.oi[data-glyph=eyedropper]:before { |
||||
content: '\e066'; |
||||
} |
||||
|
||||
.oi[data-glyph=file]:before { |
||||
content: '\e067'; |
||||
} |
||||
|
||||
.oi[data-glyph=fire]:before { |
||||
content: '\e068'; |
||||
} |
||||
|
||||
.oi[data-glyph=flag]:before { |
||||
content: '\e069'; |
||||
} |
||||
|
||||
.oi[data-glyph=flash]:before { |
||||
content: '\e06a'; |
||||
} |
||||
|
||||
.oi[data-glyph=folder]:before { |
||||
content: '\e06b'; |
||||
} |
||||
|
||||
.oi[data-glyph=fork]:before { |
||||
content: '\e06c'; |
||||
} |
||||
|
||||
.oi[data-glyph=fullscreen-enter]:before { |
||||
content: '\e06d'; |
||||
} |
||||
|
||||
.oi[data-glyph=fullscreen-exit]:before { |
||||
content: '\e06e'; |
||||
} |
||||
|
||||
.oi[data-glyph=globe]:before { |
||||
content: '\e06f'; |
||||
} |
||||
|
||||
.oi[data-glyph=graph]:before { |
||||
content: '\e070'; |
||||
} |
||||
|
||||
.oi[data-glyph=grid-four-up]:before { |
||||
content: '\e071'; |
||||
} |
||||
|
||||
.oi[data-glyph=grid-three-up]:before { |
||||
content: '\e072'; |
||||
} |
||||
|
||||
.oi[data-glyph=grid-two-up]:before { |
||||
content: '\e073'; |
||||
} |
||||
|
||||
.oi[data-glyph=hard-drive]:before { |
||||
content: '\e074'; |
||||
} |
||||
|
||||
.oi[data-glyph=header]:before { |
||||
content: '\e075'; |
||||
} |
||||
|
||||
.oi[data-glyph=headphones]:before { |
||||
content: '\e076'; |
||||
} |
||||
|
||||
.oi[data-glyph=heart]:before { |
||||
content: '\e077'; |
||||
} |
||||
|
||||
.oi[data-glyph=home]:before { |
||||
content: '\e078'; |
||||
} |
||||
|
||||
.oi[data-glyph=image]:before { |
||||
content: '\e079'; |
||||
} |
||||
|
||||
.oi[data-glyph=inbox]:before { |
||||
content: '\e07a'; |
||||
} |
||||
|
||||
.oi[data-glyph=infinity]:before { |
||||
content: '\e07b'; |
||||
} |
||||
|
||||
.oi[data-glyph=info]:before { |
||||
content: '\e07c'; |
||||
} |
||||
|
||||
.oi[data-glyph=italic]:before { |
||||
content: '\e07d'; |
||||
} |
||||
|
||||
.oi[data-glyph=justify-center]:before { |
||||
content: '\e07e'; |
||||
} |
||||
|
||||
.oi[data-glyph=justify-left]:before { |
||||
content: '\e07f'; |
||||
} |
||||
|
||||
.oi[data-glyph=justify-right]:before { |
||||
content: '\e080'; |
||||
} |
||||
|
||||
.oi[data-glyph=key]:before { |
||||
content: '\e081'; |
||||
} |
||||
|
||||
.oi[data-glyph=laptop]:before { |
||||
content: '\e082'; |
||||
} |
||||
|
||||
.oi[data-glyph=layers]:before { |
||||
content: '\e083'; |
||||
} |
||||
|
||||
.oi[data-glyph=lightbulb]:before { |
||||
content: '\e084'; |
||||
} |
||||
|
||||
.oi[data-glyph=link-broken]:before { |
||||
content: '\e085'; |
||||
} |
||||
|
||||
.oi[data-glyph=link-intact]:before { |
||||
content: '\e086'; |
||||
} |
||||
|
||||
.oi[data-glyph=list-rich]:before { |
||||
content: '\e087'; |
||||
} |
||||
|
||||
.oi[data-glyph=list]:before { |
||||
content: '\e088'; |
||||
} |
||||
|
||||
.oi[data-glyph=location]:before { |
||||
content: '\e089'; |
||||
} |
||||
|
||||
.oi[data-glyph=lock-locked]:before { |
||||
content: '\e08a'; |
||||
} |
||||
|
||||
.oi[data-glyph=lock-unlocked]:before { |
||||
content: '\e08b'; |
||||
} |
||||
|
||||
.oi[data-glyph=loop-circular]:before { |
||||
content: '\e08c'; |
||||
} |
||||
|
||||
.oi[data-glyph=loop-square]:before { |
||||
content: '\e08d'; |
||||
} |
||||
|
||||
.oi[data-glyph=loop]:before { |
||||
content: '\e08e'; |
||||
} |
||||
|
||||
.oi[data-glyph=magnifying-glass]:before { |
||||
content: '\e08f'; |
||||
} |
||||
|
||||
.oi[data-glyph=map-marker]:before { |
||||
content: '\e090'; |
||||
} |
||||
|
||||
.oi[data-glyph=map]:before { |
||||
content: '\e091'; |
||||
} |
||||
|
||||
.oi[data-glyph=media-pause]:before { |
||||
content: '\e092'; |
||||
} |
||||
|
||||
.oi[data-glyph=media-play]:before { |
||||
content: '\e093'; |
||||
} |
||||
|
||||
.oi[data-glyph=media-record]:before { |
||||
content: '\e094'; |
||||
} |
||||
|
||||
.oi[data-glyph=media-skip-backward]:before { |
||||
content: '\e095'; |
||||
} |
||||
|
||||
.oi[data-glyph=media-skip-forward]:before { |
||||
content: '\e096'; |
||||
} |
||||
|
||||
.oi[data-glyph=media-step-backward]:before { |
||||
content: '\e097'; |
||||
} |
||||
|
||||
.oi[data-glyph=media-step-forward]:before { |
||||
content: '\e098'; |
||||
} |
||||
|
||||
.oi[data-glyph=media-stop]:before { |
||||
content: '\e099'; |
||||
} |
||||
|
||||
.oi[data-glyph=medical-cross]:before { |
||||
content: '\e09a'; |
||||
} |
||||
|
||||
.oi[data-glyph=menu]:before { |
||||
content: '\e09b'; |
||||
} |
||||
|
||||
.oi[data-glyph=microphone]:before { |
||||
content: '\e09c'; |
||||
} |
||||
|
||||
.oi[data-glyph=minus]:before { |
||||
content: '\e09d'; |
||||
} |
||||
|
||||
.oi[data-glyph=monitor]:before { |
||||
content: '\e09e'; |
||||
} |
||||
|
||||
.oi[data-glyph=moon]:before { |
||||
content: '\e09f'; |
||||
} |
||||
|
||||
.oi[data-glyph=move]:before { |
||||
content: '\e0a0'; |
||||
} |
||||
|
||||
.oi[data-glyph=musical-note]:before { |
||||
content: '\e0a1'; |
||||
} |
||||
|
||||
.oi[data-glyph=paperclip]:before { |
||||
content: '\e0a2'; |
||||
} |
||||
|
||||
.oi[data-glyph=pencil]:before { |
||||
content: '\e0a3'; |
||||
} |
||||
|
||||
.oi[data-glyph=people]:before { |
||||
content: '\e0a4'; |
||||
} |
||||
|
||||
.oi[data-glyph=person]:before { |
||||
content: '\e0a5'; |
||||
} |
||||
|
||||
.oi[data-glyph=phone]:before { |
||||
content: '\e0a6'; |
||||
} |
||||
|
||||
.oi[data-glyph=pie-chart]:before { |
||||
content: '\e0a7'; |
||||
} |
||||
|
||||
.oi[data-glyph=pin]:before { |
||||
content: '\e0a8'; |
||||
} |
||||
|
||||
.oi[data-glyph=play-circle]:before { |
||||
content: '\e0a9'; |
||||
} |
||||
|
||||
.oi[data-glyph=plus]:before { |
||||
content: '\e0aa'; |
||||
} |
||||
|
||||
.oi[data-glyph=power-standby]:before { |
||||
content: '\e0ab'; |
||||
} |
||||
|
||||
.oi[data-glyph=print]:before { |
||||
content: '\e0ac'; |
||||
} |
||||
|
||||
.oi[data-glyph=project]:before { |
||||
content: '\e0ad'; |
||||
} |
||||
|
||||
.oi[data-glyph=pulse]:before { |
||||
content: '\e0ae'; |
||||
} |
||||
|
||||
.oi[data-glyph=puzzle-piece]:before { |
||||
content: '\e0af'; |
||||
} |
||||
|
||||
.oi[data-glyph=question-mark]:before { |
||||
content: '\e0b0'; |
||||
} |
||||
|
||||
.oi[data-glyph=rain]:before { |
||||
content: '\e0b1'; |
||||
} |
||||
|
||||
.oi[data-glyph=random]:before { |
||||
content: '\e0b2'; |
||||
} |
||||
|
||||
.oi[data-glyph=reload]:before { |
||||
content: '\e0b3'; |
||||
} |
||||
|
||||
.oi[data-glyph=resize-both]:before { |
||||
content: '\e0b4'; |
||||
} |
||||
|
||||
.oi[data-glyph=resize-height]:before { |
||||
content: '\e0b5'; |
||||
} |
||||
|
||||
.oi[data-glyph=resize-width]:before { |
||||
content: '\e0b6'; |
||||
} |
||||
|
||||
.oi[data-glyph=rss-alt]:before { |
||||
content: '\e0b7'; |
||||
} |
||||
|
||||
.oi[data-glyph=rss]:before { |
||||
content: '\e0b8'; |
||||
} |
||||
|
||||
.oi[data-glyph=script]:before { |
||||
content: '\e0b9'; |
||||
} |
||||
|
||||
.oi[data-glyph=share-boxed]:before { |
||||
content: '\e0ba'; |
||||
} |
||||
|
||||
.oi[data-glyph=share]:before { |
||||
content: '\e0bb'; |
||||
} |
||||
|
||||
.oi[data-glyph=shield]:before { |
||||
content: '\e0bc'; |
||||
} |
||||
|
||||
.oi[data-glyph=signal]:before { |
||||
content: '\e0bd'; |
||||
} |
||||
|
||||
.oi[data-glyph=signpost]:before { |
||||
content: '\e0be'; |
||||
} |
||||
|
||||
.oi[data-glyph=sort-ascending]:before { |
||||
content: '\e0bf'; |
||||
} |
||||
|
||||
.oi[data-glyph=sort-descending]:before { |
||||
content: '\e0c0'; |
||||
} |
||||
|
||||
.oi[data-glyph=spreadsheet]:before { |
||||
content: '\e0c1'; |
||||
} |
||||
|
||||
.oi[data-glyph=star]:before { |
||||
content: '\e0c2'; |
||||
} |
||||
|
||||
.oi[data-glyph=sun]:before { |
||||
content: '\e0c3'; |
||||
} |
||||
|
||||
.oi[data-glyph=tablet]:before { |
||||
content: '\e0c4'; |
||||
} |
||||
|
||||
.oi[data-glyph=tag]:before { |
||||
content: '\e0c5'; |
||||
} |
||||
|
||||
.oi[data-glyph=tags]:before { |
||||
content: '\e0c6'; |
||||
} |
||||
|
||||
.oi[data-glyph=target]:before { |
||||
content: '\e0c7'; |
||||
} |
||||
|
||||
.oi[data-glyph=task]:before { |
||||
content: '\e0c8'; |
||||
} |
||||
|
||||
.oi[data-glyph=terminal]:before { |
||||
content: '\e0c9'; |
||||
} |
||||
|
||||
.oi[data-glyph=text]:before { |
||||
content: '\e0ca'; |
||||
} |
||||
|
||||
.oi[data-glyph=thumb-down]:before { |
||||
content: '\e0cb'; |
||||
} |
||||
|
||||
.oi[data-glyph=thumb-up]:before { |
||||
content: '\e0cc'; |
||||
} |
||||
|
||||
.oi[data-glyph=timer]:before { |
||||
content: '\e0cd'; |
||||
} |
||||
|
||||
.oi[data-glyph=transfer]:before { |
||||
content: '\e0ce'; |
||||
} |
||||
|
||||
.oi[data-glyph=trash]:before { |
||||
content: '\e0cf'; |
||||
} |
||||
|
||||
.oi[data-glyph=underline]:before { |
||||
content: '\e0d0'; |
||||
} |
||||
|
||||
.oi[data-glyph=vertical-align-bottom]:before { |
||||
content: '\e0d1'; |
||||
} |
||||
|
||||
.oi[data-glyph=vertical-align-center]:before { |
||||
content: '\e0d2'; |
||||
} |
||||
|
||||
.oi[data-glyph=vertical-align-top]:before { |
||||
content: '\e0d3'; |
||||
} |
||||
|
||||
.oi[data-glyph=video]:before { |
||||
content: '\e0d4'; |
||||
} |
||||
|
||||
.oi[data-glyph=volume-high]:before { |
||||
content: '\e0d5'; |
||||
} |
||||
|
||||
.oi[data-glyph=volume-low]:before { |
||||
content: '\e0d6'; |
||||
} |
||||
|
||||
.oi[data-glyph=volume-off]:before { |
||||
content: '\e0d7'; |
||||
} |
||||
|
||||
.oi[data-glyph=warning]:before { |
||||
content: '\e0d8'; |
||||
} |
||||
|
||||
.oi[data-glyph=wifi]:before { |
||||
content: '\e0d9'; |
||||
} |
||||
|
||||
.oi[data-glyph=wrench]:before { |
||||
content: '\e0da'; |
||||
} |
||||
|
||||
.oi[data-glyph=x]:before { |
||||
content: '\e0db'; |
||||
} |
||||
|
||||
.oi[data-glyph=yen]:before { |
||||
content: '\e0dc'; |
||||
} |
||||
|
||||
.oi[data-glyph=zoom-in]:before { |
||||
content: '\e0dd'; |
||||
} |
||||
|
||||
.oi[data-glyph=zoom-out]:before { |
||||
content: '\e0de'; |
||||
} |
||||
|
@ -0,0 +1,733 @@
@@ -0,0 +1,733 @@
|
||||
@font-face |
||||
font-family 'Icons' |
||||
src url('../fonts/open-iconic.eot') |
||||
src url('../fonts/open-iconic.eot?#iconic-sm') format('embedded-opentype'), url('../fonts/open-iconic.woff') format('woff'), url('../fonts/open-iconic.ttf') format('truetype'), url('../fonts/open-iconic.otf') format('opentype'), url('../fonts/open-iconic.svg#iconic-sm') format('svg') |
||||
font-weight normal |
||||
font-style normal |
||||
|
||||
|
||||
.oi[data-glyph].oi-text-replace |
||||
font-size 0 |
||||
line-height 0 |
||||
|
||||
.oi[data-glyph].oi-text-replace:before |
||||
width 1em |
||||
text-align center |
||||
|
||||
.oi[data-glyph] |
||||
&:before |
||||
position relative |
||||
top 1px |
||||
font-family 'Icons' |
||||
display inline-block |
||||
speak none |
||||
line-height 1 |
||||
vertical-align baseline |
||||
font-weight normal |
||||
font-style normal |
||||
-webkit-font-smoothing antialiased |
||||
-moz-osx-font-smoothing grayscale |
||||
|
||||
&:empty:before |
||||
width 1em |
||||
text-align center |
||||
box-sizing content-box |
||||
|
||||
&.oi-align-left:before |
||||
text-align left |
||||
|
||||
&.oi-align-right:before |
||||
text-align right |
||||
|
||||
&.oi-align-center:before |
||||
text-align center |
||||
|
||||
|
||||
&.oi-flip-horizontal:before |
||||
-webkit-transform scale(-1, 1) |
||||
-ms-transform scale(-1, 1) |
||||
transform scale(-1, 1) |
||||
|
||||
|
||||
&.oi-flip-vertical:before |
||||
-webkit-transform scale(1, -1) |
||||
-ms-transform scale(-1, 1) |
||||
transform scale(1, -1) |
||||
|
||||
|
||||
&.oi-flip-horizontal-vertical:before |
||||
-webkit-transform scale(-1, -1) |
||||
-ms-transform scale(-1, 1) |
||||
transform scale(-1, -1) |
||||
|
||||
|
||||
|
||||
|
||||
.oi[data-glyph=account-login]:before |
||||
content '\e000' |
||||
|
||||
.oi[data-glyph=account-logout]:before |
||||
content '\e001' |
||||
|
||||
.oi[data-glyph=action-redo]:before |
||||
content '\e002' |
||||
|
||||
.oi[data-glyph=action-undo]:before |
||||
content '\e003' |
||||
|
||||
.oi[data-glyph=align-center]:before |
||||
content '\e004' |
||||
|
||||
.oi[data-glyph=align-left]:before |
||||
content '\e005' |
||||
|
||||
.oi[data-glyph=align-right]:before |
||||
content '\e006' |
||||
|
||||
.oi[data-glyph=aperture]:before |
||||
content '\e007' |
||||
|
||||
.oi[data-glyph=arrow-bottom]:before |
||||
content '\e008' |
||||
|
||||
.oi[data-glyph=arrow-circle-bottom]:before |
||||
content '\e009' |
||||
|
||||
.oi[data-glyph=arrow-circle-left]:before |
||||
content '\e00a' |
||||
|
||||
.oi[data-glyph=arrow-circle-right]:before |
||||
content '\e00b' |
||||
|
||||
.oi[data-glyph=arrow-circle-top]:before |
||||
content '\e00c' |
||||
|
||||
.oi[data-glyph=arrow-left]:before |
||||
content '\e00d' |
||||
|
||||
.oi[data-glyph=arrow-right]:before |
||||
content '\e00e' |
||||
|
||||
.oi[data-glyph=arrow-thick-bottom]:before |
||||
content '\e00f' |
||||
|
||||
.oi[data-glyph=arrow-thick-left]:before |
||||
content '\e010' |
||||
|
||||
.oi[data-glyph=arrow-thick-right]:before |
||||
content '\e011' |
||||
|
||||
.oi[data-glyph=arrow-thick-top]:before |
||||
content '\e012' |
||||
|
||||
.oi[data-glyph=arrow-top]:before |
||||
content '\e013' |
||||
|
||||
.oi[data-glyph=audio-spectrum]:before |
||||
content '\e014' |
||||
|
||||
.oi[data-glyph=audio]:before |
||||
content '\e015' |
||||
|
||||
.oi[data-glyph=badge]:before |
||||
content '\e016' |
||||
|
||||
.oi[data-glyph=ban]:before |
||||
content '\e017' |
||||
|
||||
.oi[data-glyph=bar-chart]:before |
||||
content '\e018' |
||||
|
||||
.oi[data-glyph=basket]:before |
||||
content '\e019' |
||||
|
||||
.oi[data-glyph=battery-empty]:before |
||||
content '\e01a' |
||||
|
||||
.oi[data-glyph=battery-full]:before |
||||
content '\e01b' |
||||
|
||||
.oi[data-glyph=beaker]:before |
||||
content '\e01c' |
||||
|
||||
.oi[data-glyph=bell]:before |
||||
content '\e01d' |
||||
|
||||
.oi[data-glyph=bluetooth]:before |
||||
content '\e01e' |
||||
|
||||
.oi[data-glyph=bold]:before |
||||
content '\e01f' |
||||
|
||||
.oi[data-glyph=bolt]:before |
||||
content '\e020' |
||||
|
||||
.oi[data-glyph=book]:before |
||||
content '\e021' |
||||
|
||||
.oi[data-glyph=bookmark]:before |
||||
content '\e022' |
||||
|
||||
.oi[data-glyph=box]:before |
||||
content '\e023' |
||||
|
||||
.oi[data-glyph=briefcase]:before |
||||
content '\e024' |
||||
|
||||
.oi[data-glyph=british-pound]:before |
||||
content '\e025' |
||||
|
||||
.oi[data-glyph=browser]:before |
||||
content '\e026' |
||||
|
||||
.oi[data-glyph=brush]:before |
||||
content '\e027' |
||||
|
||||
.oi[data-glyph=bug]:before |
||||
content '\e028' |
||||
|
||||
.oi[data-glyph=bullhorn]:before |
||||
content '\e029' |
||||
|
||||
.oi[data-glyph=calculator]:before |
||||
content '\e02a' |
||||
|
||||
.oi[data-glyph=calendar]:before |
||||
content '\e02b' |
||||
|
||||
.oi[data-glyph=camera-slr]:before |
||||
content '\e02c' |
||||
|
||||
.oi[data-glyph=caret-bottom]:before |
||||
content '\e02d' |
||||
|
||||
.oi[data-glyph=caret-left]:before |
||||
content '\e02e' |
||||
|
||||
.oi[data-glyph=caret-right]:before |
||||
content '\e02f' |
||||
|
||||
.oi[data-glyph=caret-top]:before |
||||
content '\e030' |
||||
|
||||
.oi[data-glyph=cart]:before |
||||
content '\e031' |
||||
|
||||
.oi[data-glyph=chat]:before |
||||
content '\e032' |
||||
|
||||
.oi[data-glyph=check]:before |
||||
content '\e033' |
||||
|
||||
.oi[data-glyph=chevron-bottom]:before |
||||
content '\e034' |
||||
|
||||
.oi[data-glyph=chevron-left]:before |
||||
content '\e035' |
||||
|
||||
.oi[data-glyph=chevron-right]:before |
||||
content '\e036' |
||||
|
||||
.oi[data-glyph=chevron-top]:before |
||||
content '\e037' |
||||
|
||||
.oi[data-glyph=circle-check]:before |
||||
content '\e038' |
||||
|
||||
.oi[data-glyph=circle-x]:before |
||||
content '\e039' |
||||
|
||||
.oi[data-glyph=clipboard]:before |
||||
content '\e03a' |
||||
|
||||
.oi[data-glyph=clock]:before |
||||
content '\e03b' |
||||
|
||||
.oi[data-glyph=cloud-download]:before |
||||
content '\e03c' |
||||
|
||||
.oi[data-glyph=cloud-upload]:before |
||||
content '\e03d' |
||||
|
||||
.oi[data-glyph=cloud]:before |
||||
content '\e03e' |
||||
|
||||
.oi[data-glyph=cloudy]:before |
||||
content '\e03f' |
||||
|
||||
.oi[data-glyph=code]:before |
||||
content '\e040' |
||||
|
||||
.oi[data-glyph=cog]:before |
||||
content '\e041' |
||||
|
||||
.oi[data-glyph=collapse-down]:before |
||||
content '\e042' |
||||
|
||||
.oi[data-glyph=collapse-left]:before |
||||
content '\e043' |
||||
|
||||
.oi[data-glyph=collapse-right]:before |
||||
content '\e044' |
||||
|
||||
.oi[data-glyph=collapse-up]:before |
||||
content '\e045' |
||||
|
||||
.oi[data-glyph=command]:before |
||||
content '\e046' |
||||
|
||||
.oi[data-glyph=comment-square]:before |
||||
content '\e047' |
||||
|
||||
.oi[data-glyph=compass]:before |
||||
content '\e048' |
||||
|
||||
.oi[data-glyph=contrast]:before |
||||
content '\e049' |
||||
|
||||
.oi[data-glyph=copywriting]:before |
||||
content '\e04a' |
||||
|
||||
.oi[data-glyph=credit-card]:before |
||||
content '\e04b' |
||||
|
||||
.oi[data-glyph=crop]:before |
||||
content '\e04c' |
||||
|
||||
.oi[data-glyph=dashboard]:before |
||||
content '\e04d' |
||||
|
||||
.oi[data-glyph=data-transfer-download]:before |
||||
content '\e04e' |
||||
|
||||
.oi[data-glyph=data-transfer-upload]:before |
||||
content '\e04f' |
||||
|
||||
.oi[data-glyph=delete]:before |
||||
content '\e050' |
||||
|
||||
.oi[data-glyph=dial]:before |
||||
content '\e051' |
||||
|
||||
.oi[data-glyph=document]:before |
||||
content '\e052' |
||||
|
||||
.oi[data-glyph=dollar]:before |
||||
content '\e053' |
||||
|
||||
.oi[data-glyph=double-quote-sans-left]:before |
||||
content '\e054' |
||||
|
||||
.oi[data-glyph=double-quote-sans-right]:before |
||||
content '\e055' |
||||
|
||||
.oi[data-glyph=double-quote-serif-left]:before |
||||
content '\e056' |
||||
|
||||
.oi[data-glyph=double-quote-serif-right]:before |
||||
content '\e057' |
||||
|
||||
.oi[data-glyph=droplet]:before |
||||
content '\e058' |
||||
|
||||
.oi[data-glyph=eject]:before |
||||
content '\e059' |
||||
|
||||
.oi[data-glyph=elevator]:before |
||||
content '\e05a' |
||||
|
||||
.oi[data-glyph=ellipses]:before |
||||
content '\e05b' |
||||
|
||||
.oi[data-glyph=envelope-closed]:before |
||||
content '\e05c' |
||||
|
||||
.oi[data-glyph=envelope-open]:before |
||||
content '\e05d' |
||||
|
||||
.oi[data-glyph=euro]:before |
||||
content '\e05e' |
||||
|
||||
.oi[data-glyph=excerpt]:before |
||||
content '\e05f' |
||||
|
||||
.oi[data-glyph=expand-down]:before |
||||
content '\e060' |
||||
|
||||
.oi[data-glyph=expand-left]:before |
||||
content '\e061' |
||||
|
||||
.oi[data-glyph=expand-right]:before |
||||
content '\e062' |
||||
|
||||
.oi[data-glyph=expand-up]:before |
||||
content '\e063' |
||||
|
||||
.oi[data-glyph=external-link]:before |
||||
content '\e064' |
||||
|
||||
.oi[data-glyph=eye]:before |
||||
content '\e065' |
||||
|
||||
.oi[data-glyph=eyedropper]:before |
||||
content '\e066' |
||||
|
||||
.oi[data-glyph=file]:before |
||||
content '\e067' |
||||
|
||||
.oi[data-glyph=fire]:before |
||||
content '\e068' |
||||
|
||||
.oi[data-glyph=flag]:before |
||||
content '\e069' |
||||
|
||||
.oi[data-glyph=flash]:before |
||||
content '\e06a' |
||||
|
||||
.oi[data-glyph=folder]:before |
||||
content '\e06b' |
||||
|
||||
.oi[data-glyph=fork]:before |
||||
content '\e06c' |
||||
|
||||
.oi[data-glyph=fullscreen-enter]:before |
||||
content '\e06d' |
||||
|
||||
.oi[data-glyph=fullscreen-exit]:before |
||||
content '\e06e' |
||||
|
||||
.oi[data-glyph=globe]:before |
||||
content '\e06f' |
||||
|
||||
.oi[data-glyph=graph]:before |
||||
content '\e070' |
||||
|
||||
.oi[data-glyph=grid-four-up]:before |
||||
content '\e071' |
||||
|
||||
.oi[data-glyph=grid-three-up]:before |
||||
content '\e072' |
||||
|
||||
.oi[data-glyph=grid-two-up]:before |
||||
content '\e073' |
||||
|
||||
.oi[data-glyph=hard-drive]:before |
||||
content '\e074' |
||||
|
||||
.oi[data-glyph=header]:before |
||||
content '\e075' |
||||
|
||||
.oi[data-glyph=headphones]:before |
||||
content '\e076' |
||||
|
||||
.oi[data-glyph=heart]:before |
||||
content '\e077' |
||||
|
||||
.oi[data-glyph=home]:before |
||||
content '\e078' |
||||
|
||||
.oi[data-glyph=image]:before |
||||
content '\e079' |
||||
|
||||
.oi[data-glyph=inbox]:before |
||||
content '\e07a' |
||||
|
||||
.oi[data-glyph=infinity]:before |
||||
content '\e07b' |
||||
|
||||
.oi[data-glyph=info]:before |
||||
content '\e07c' |
||||
|
||||
.oi[data-glyph=italic]:before |
||||
content '\e07d' |
||||
|
||||
.oi[data-glyph=justify-center]:before |
||||
content '\e07e' |
||||
|
||||
.oi[data-glyph=justify-left]:before |
||||
content '\e07f' |
||||
|
||||
.oi[data-glyph=justify-right]:before |
||||
content '\e080' |
||||
|
||||
.oi[data-glyph=key]:before |
||||
content '\e081' |
||||
|
||||
.oi[data-glyph=laptop]:before |
||||
content '\e082' |
||||
|
||||
.oi[data-glyph=layers]:before |
||||
content '\e083' |
||||
|
||||
.oi[data-glyph=lightbulb]:before |
||||
content '\e084' |
||||
|
||||
.oi[data-glyph=link-broken]:before |
||||
content '\e085' |
||||
|
||||
.oi[data-glyph=link-intact]:before |
||||
content '\e086' |
||||
|
||||
.oi[data-glyph=list-rich]:before |
||||
content '\e087' |
||||
|
||||
.oi[data-glyph=list]:before |
||||
content '\e088' |
||||
|
||||
.oi[data-glyph=location]:before |
||||
content '\e089' |
||||
|
||||
.oi[data-glyph=lock-locked]:before |
||||
content '\e08a' |
||||
|
||||
.oi[data-glyph=lock-unlocked]:before |
||||
content '\e08b' |
||||
|
||||
.oi[data-glyph=loop-circular]:before |
||||
content '\e08c' |
||||
|
||||
.oi[data-glyph=loop-square]:before |
||||
content '\e08d' |
||||
|
||||
.oi[data-glyph=loop]:before |
||||
content '\e08e' |
||||
|
||||
.oi[data-glyph=magnifying-glass]:before |
||||
content '\e08f' |
||||
|
||||
.oi[data-glyph=map-marker]:before |
||||
content '\e090' |
||||
|
||||
.oi[data-glyph=map]:before |
||||
content '\e091' |
||||
|
||||
.oi[data-glyph=media-pause]:before |
||||
content '\e092' |
||||
|
||||
.oi[data-glyph=media-play]:before |
||||
content '\e093' |
||||
|
||||
.oi[data-glyph=media-record]:before |
||||
content '\e094' |
||||
|
||||
.oi[data-glyph=media-skip-backward]:before |
||||
content '\e095' |
||||
|
||||
.oi[data-glyph=media-skip-forward]:before |
||||
content '\e096' |
||||
|
||||
.oi[data-glyph=media-step-backward]:before |
||||
content '\e097' |
||||
|
||||
.oi[data-glyph=media-step-forward]:before |
||||
content '\e098' |
||||
|
||||
.oi[data-glyph=media-stop]:before |
||||
content '\e099' |
||||
|
||||
.oi[data-glyph=medical-cross]:before |
||||
content '\e09a' |
||||
|
||||
.oi[data-glyph=menu]:before |
||||
content '\e09b' |
||||
|
||||
.oi[data-glyph=microphone]:before |
||||
content '\e09c' |
||||
|
||||
.oi[data-glyph=minus]:before |
||||
content '\e09d' |
||||
|
||||
.oi[data-glyph=monitor]:before |
||||
content '\e09e' |
||||
|
||||
.oi[data-glyph=moon]:before |
||||
content '\e09f' |
||||
|
||||
.oi[data-glyph=move]:before |
||||
content '\e0a0' |
||||
|
||||
.oi[data-glyph=musical-note]:before |
||||
content '\e0a1' |
||||
|
||||
.oi[data-glyph=paperclip]:before |
||||
content '\e0a2' |
||||
|
||||
.oi[data-glyph=pencil]:before |
||||
content '\e0a3' |
||||
|
||||
.oi[data-glyph=people]:before |
||||
content '\e0a4' |
||||
|
||||
.oi[data-glyph=person]:before |
||||
content '\e0a5' |
||||
|
||||
.oi[data-glyph=phone]:before |
||||
content '\e0a6' |
||||
|
||||
.oi[data-glyph=pie-chart]:before |
||||
content '\e0a7' |
||||
|
||||
.oi[data-glyph=pin]:before |
||||
content '\e0a8' |
||||
|
||||
.oi[data-glyph=play-circle]:before |
||||
content '\e0a9' |
||||
|
||||
.oi[data-glyph=plus]:before |
||||
content '\e0aa' |
||||
|
||||
.oi[data-glyph=power-standby]:before |
||||
content '\e0ab' |
||||
|
||||
.oi[data-glyph=print]:before |
||||
content '\e0ac' |
||||
|
||||
.oi[data-glyph=project]:before |
||||
content '\e0ad' |
||||
|
||||
.oi[data-glyph=pulse]:before |
||||
content '\e0ae' |
||||
|
||||
.oi[data-glyph=puzzle-piece]:before |
||||
content '\e0af' |
||||
|
||||
.oi[data-glyph=question-mark]:before |
||||
content '\e0b0' |
||||
|
||||
.oi[data-glyph=rain]:before |
||||
content '\e0b1' |
||||
|
||||
.oi[data-glyph=random]:before |
||||
content '\e0b2' |
||||
|
||||
.oi[data-glyph=reload]:before |
||||
content '\e0b3' |
||||
|
||||
.oi[data-glyph=resize-both]:before |
||||
content '\e0b4' |
||||
|
||||
.oi[data-glyph=resize-height]:before |
||||
content '\e0b5' |
||||
|
||||
.oi[data-glyph=resize-width]:before |
||||
content '\e0b6' |
||||
|
||||
.oi[data-glyph=rss-alt]:before |
||||
content '\e0b7' |
||||
|
||||
.oi[data-glyph=rss]:before |
||||
content '\e0b8' |
||||
|
||||
.oi[data-glyph=script]:before |
||||
content '\e0b9' |
||||
|
||||
.oi[data-glyph=share-boxed]:before |
||||
content '\e0ba' |
||||
|
||||
.oi[data-glyph=share]:before |
||||
content '\e0bb' |
||||
|
||||
.oi[data-glyph=shield]:before |
||||
content '\e0bc' |
||||
|
||||
.oi[data-glyph=signal]:before |
||||
content '\e0bd' |
||||
|
||||
.oi[data-glyph=signpost]:before |
||||
content '\e0be' |
||||
|
||||
.oi[data-glyph=sort-ascending]:before |
||||
content '\e0bf' |
||||
|
||||
.oi[data-glyph=sort-descending]:before |
||||
content '\e0c0' |
||||
|
||||
.oi[data-glyph=spreadsheet]:before |
||||
content '\e0c1' |
||||
|
||||
.oi[data-glyph=star]:before |
||||
content '\e0c2' |
||||
|
||||
.oi[data-glyph=sun]:before |
||||
content '\e0c3' |
||||
|
||||
.oi[data-glyph=tablet]:before |
||||
content '\e0c4' |
||||
|
||||
.oi[data-glyph=tag]:before |
||||
content '\e0c5' |
||||
|
||||
.oi[data-glyph=tags]:before |
||||
content '\e0c6' |
||||
|
||||
.oi[data-glyph=target]:before |
||||
content '\e0c7' |
||||
|
||||
.oi[data-glyph=task]:before |
||||
content '\e0c8' |
||||
|
||||
.oi[data-glyph=terminal]:before |
||||
content '\e0c9' |
||||
|
||||
.oi[data-glyph=text]:before |
||||
content '\e0ca' |
||||
|
||||
.oi[data-glyph=thumb-down]:before |
||||
content '\e0cb' |
||||
|
||||
.oi[data-glyph=thumb-up]:before |
||||
content '\e0cc' |
||||
|
||||
.oi[data-glyph=timer]:before |
||||
content '\e0cd' |
||||
|
||||
.oi[data-glyph=transfer]:before |
||||
content '\e0ce' |
||||
|
||||
.oi[data-glyph=trash]:before |
||||
content '\e0cf' |
||||
|
||||
.oi[data-glyph=underline]:before |
||||
content '\e0d0' |
||||
|
||||
.oi[data-glyph=vertical-align-bottom]:before |
||||
content '\e0d1' |
||||
|
||||
.oi[data-glyph=vertical-align-center]:before |
||||
content '\e0d2' |
||||
|
||||
.oi[data-glyph=vertical-align-top]:before |
||||
content '\e0d3' |
||||
|
||||
.oi[data-glyph=video]:before |
||||
content '\e0d4' |
||||
|
||||
.oi[data-glyph=volume-high]:before |
||||
content '\e0d5' |
||||
|
||||
.oi[data-glyph=volume-low]:before |
||||
content '\e0d6' |
||||
|
||||
.oi[data-glyph=volume-off]:before |
||||
content '\e0d7' |
||||
|
||||
.oi[data-glyph=warning]:before |
||||
content '\e0d8' |
||||
|
||||
.oi[data-glyph=wifi]:before |
||||
content '\e0d9' |
||||
|
||||
.oi[data-glyph=wrench]:before |
||||
content '\e0da' |
||||
|
||||
.oi[data-glyph=x]:before |
||||
content '\e0db' |
||||
|
||||
.oi[data-glyph=yen]:before |
||||
content '\e0dc' |
||||
|
||||
.oi[data-glyph=zoom-in]:before |
||||
content '\e0dd' |
||||
|
||||
.oi[data-glyph=zoom-out]:before |
||||
content '\e0de' |
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 391 B |
After Width: | Height: | Size: 378 B |
After Width: | Height: | Size: 779 B |
After Width: | Height: | Size: 760 B |
After Width: | Height: | Size: 218 B |
After Width: | Height: | Size: 214 B |
After Width: | Height: | Size: 212 B |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 524 B |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 992 B |
After Width: | Height: | Size: 985 B |
After Width: | Height: | Size: 1015 B |
After Width: | Height: | Size: 467 B |
After Width: | Height: | Size: 522 B |
After Width: | Height: | Size: 485 B |
After Width: | Height: | Size: 444 B |
After Width: | Height: | Size: 508 B |
After Width: | Height: | Size: 518 B |
After Width: | Height: | Size: 545 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 293 B |
After Width: | Height: | Size: 724 B |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 271 B |
After Width: | Height: | Size: 827 B |
After Width: | Height: | Size: 336 B |
After Width: | Height: | Size: 311 B |
After Width: | Height: | Size: 955 B |
After Width: | Height: | Size: 804 B |
After Width: | Height: | Size: 822 B |
After Width: | Height: | Size: 892 B |
After Width: | Height: | Size: 420 B |
After Width: | Height: | Size: 554 B |
After Width: | Height: | Size: 343 B |
After Width: | Height: | Size: 283 B |
After Width: | Height: | Size: 462 B |
After Width: | Height: | Size: 861 B |
After Width: | Height: | Size: 518 B |
After Width: | Height: | Size: 975 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 683 B |
After Width: | Height: | Size: 329 B |
After Width: | Height: | Size: 299 B |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 270 B |
After Width: | Height: | Size: 408 B |
After Width: | Height: | Size: 337 B |
After Width: | Height: | Size: 302 B |
After Width: | Height: | Size: 632 B |
After Width: | Height: | Size: 352 B |
After Width: | Height: | Size: 557 B |
After Width: | Height: | Size: 372 B |
After Width: | Height: | Size: 423 B |
After Width: | Height: | Size: 419 B |
After Width: | Height: | Size: 397 B |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 1.0 KiB |