diff --git a/package.json b/package.json index 3e10a0d..a70c3ef 100644 --- a/package.json +++ b/package.json @@ -6,16 +6,31 @@ "@testing-library/jest-dom": "^5.11.4", "@testing-library/react": "^11.1.0", "@testing-library/user-event": "^12.1.10", + "axios": "^0.21.1", + "bootstrap": "^5.0.1", + "node-sass": "^6.0.0", + "prettier": "^2.3.0", + "prop-types": "^15.7.2", "react": "^17.0.2", "react-dom": "^17.0.2", + "react-redux": "^7.2.4", + "react-router-dom": "^5.2.0", "react-scripts": "4.0.3", + "react-toastify": "^7.0.4", + "redux": "^4.1.0", + "redux-devtools-extension": "^2.13.9", + "redux-thunk": "^2.3.0", + "sass": "^1.34.0", "web-vitals": "^1.0.1" }, "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", - "eject": "react-scripts eject" + "eject": "react-scripts eject", + "prettier": "prettier --write \"**/*\"", + "eslint": "eslint \"**/*.js\"", + "index": "create-index ./src/Redux -r" }, "eslintConfig": { "extends": [ diff --git a/src/App.css b/src/App.css index 74b5e05..e4618cc 100644 --- a/src/App.css +++ b/src/App.css @@ -1,38 +1,15 @@ -.App { - text-align: center; -} - -.App-logo { - height: 40vmin; - pointer-events: none; -} -@media (prefers-reduced-motion: no-preference) { - .App-logo { - animation: App-logo-spin infinite 20s linear; - } +a { + color: black !important; } -.App-header { - background-color: #282c34; - min-height: 100vh; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - font-size: calc(10px + 2vmin); - color: white; +* { + font-family: IRANSansNumeral !important; + box-sizing: border-box !important; + direction: rtl; } -.App-link { - color: #61dafb; -} - -@keyframes App-logo-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} +@font-face { + font-family: IRANSansNumeral; + src: url(assets/IRANSans/Farsi_numerals/IRANSans\(FaNum\)_Medium.ttf); +} \ No newline at end of file diff --git a/src/App.js b/src/App.js index 3784575..db6ec4f 100644 --- a/src/App.js +++ b/src/App.js @@ -1,25 +1,15 @@ -import logo from './logo.svg'; -import './App.css'; - -function App() { - return ( -
-
- logo -

- Edit src/App.js and save to reload. -

- - Learn React - -
-
- ); +import React, { Component } from "react"; +import AppRouter from "./AppRouter"; +import store from "./Redux/store"; +import { Provider } from "react-redux"; +class App extends Component { + render() { + return ( + + + + ); + } } export default App; diff --git a/src/AppRouter.js b/src/AppRouter.js new file mode 100644 index 0000000..911c750 --- /dev/null +++ b/src/AppRouter.js @@ -0,0 +1,30 @@ +import React, { Component } from 'react'; +import './App.css'; +import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'; +import proxy from './Redux/proxy'; +import Home from './views/Home/Home'; +import Auth from './views/Auth/Auth'; + +class AppRouter extends Component { + constructor(props) { + super(props); + window.router = this; + } + state = {}; + render() { + let home = ( + + + {/* {proxy.status() ? : } */} + + ); + + return ( + + {home} + + ); + } +} + +export default AppRouter; diff --git a/src/Redux/actions/chat.js b/src/Redux/actions/chat.js new file mode 100644 index 0000000..2ffa612 --- /dev/null +++ b/src/Redux/actions/chat.js @@ -0,0 +1,13 @@ +import proxy from '../proxy'; +export const list = + (data = {}) => + async (dispatch) => + (await proxy.get('chat/list', data)).dispatch(dispatch); +export const info = + (data = {}) => + async (dispatch) => + (await proxy.get('chat/info', data)).dispatch(dispatch); +export const bio = + (data = {}) => + async (dispatch) => + (await proxy.get('chat/bio', data)).dispatch(dispatch); diff --git a/src/Redux/actions/index.js b/src/Redux/actions/index.js new file mode 100644 index 0000000..8605f81 --- /dev/null +++ b/src/Redux/actions/index.js @@ -0,0 +1,7 @@ +// @create-index + +export { default as chat } from './chat.js'; +export { default as message } from './message.js'; +export { default as public } from './public.js'; +export { default as user } from './user.js'; + diff --git a/src/Redux/actions/message.js b/src/Redux/actions/message.js new file mode 100644 index 0000000..14d7279 --- /dev/null +++ b/src/Redux/actions/message.js @@ -0,0 +1,13 @@ +// import proxy from '../proxy'; +// export const list = +// (data = {}) => +// async (dispatch) => +// (await proxy.get('message/list', data)).dispatch(dispatch); +// export const send = +// (data = {}) => +// async (dispatch) => +// (await proxy.post('message/send', data)).dispatch(dispatch); +// export const sendKeys = +// (data = {}) => +// async (dispatch) => +// (await proxy.post('message/sendKeys', data)).dispatch(dispatch); diff --git a/src/Redux/actions/public.js b/src/Redux/actions/public.js new file mode 100644 index 0000000..9f4f773 --- /dev/null +++ b/src/Redux/actions/public.js @@ -0,0 +1,3 @@ +import proxy from '../proxy'; +export const otp = (data) => async (dispatch) => + (await proxy.get('public/otp', data)).dispatch(dispatch); diff --git a/src/Redux/actions/user.js b/src/Redux/actions/user.js new file mode 100644 index 0000000..35fe2d0 --- /dev/null +++ b/src/Redux/actions/user.js @@ -0,0 +1,9 @@ +import proxy from '../proxy'; +export const login = + (data = {}) => + async (dispatch) => + (await proxy.login(data)).dispatch(dispatch); +export const logout = + (data = {}) => + async (dispatch) => + (await proxy.logout(data)).dispatch(dispatch); diff --git a/src/Redux/index.js b/src/Redux/index.js new file mode 100644 index 0000000..94cfa95 --- /dev/null +++ b/src/Redux/index.js @@ -0,0 +1,7 @@ +// @create-index + +export { default as actions } from './actions'; +export { default as proxy } from './proxy.js'; +export { default as reducers } from './reducers'; +export { default as store } from './store.js'; + diff --git a/src/Redux/proxy.js b/src/Redux/proxy.js new file mode 100644 index 0000000..7b3ea3c --- /dev/null +++ b/src/Redux/proxy.js @@ -0,0 +1,75 @@ +import axios from 'axios'; +import { toast } from 'react-toastify'; +const baseURL = 'https://chatstory.ir/api/v1'; //"https://chatstory.ir/api/v1"; +const token = ''; +const loginURL = 'user/otp/login'; +const logoutURL = 'user/logout'; +window.baseURL = baseURL; +const Axios = axios.create({ + withCredentials: true, + validateStatus: null, + baseURL, +}); +class dispatch {} +class Proxy { + get = (url, params, opt = {}) => this.check(url, () => Axios.get(url, { params, ...opt })); + post = (url, params, opt = {}) => this.check(url, () => Axios.post(url, params, opt)); + put = (url, params, opt = {}) => this.check(url, () => Axios.put(url, params, opt)); + delete = (url, params, opt = {}) => this.check(url, () => Axios.delete(url, params, opt)); + result = (url, data) => ({ + ...data, + dispatch: (dispatch) => { + dispatch({ type: url, data }); + return data; + }, + }); + check = async (url, fetch) => { + let response = await fetch(); + switch (response.status) { + case 200: + return this.result(url, response.data.data); + case 401: + if (await this.refresh()) return this.result(url, (await fetch()).data.data); + break; + default: + toast.error(response.data.message); + } + return false; + }; + refresh = async () => { + let refresh = localStorage.getItem('refresh'); + if (!refresh) window.location.href = '/'; + let login = await this.login({}, { headers: { Authorization: `Bearer ${refresh}` } }); + return login ? true : false; + }; + login = async (data, opt = { headers: { Authorization: `Bearer ${token}` } }) => { + const login = await this.post(loginURL, data, opt); + if (!login || !login.refreshToken) return this.result('login', false); + localStorage.setItem('refresh', login.refreshToken); + delete login.refreshToken; + localStorage.setItem('userData', JSON.stringify(login)); + if (data !== {}) window.router.setState({ islogin: true }); + return this.result('login', login); + }; + logout = async () => { + this.post(logoutURL); + localStorage.removeItem('refresh'); + localStorage.removeItem('userData'); + window.router.setState({ islogin: false }); + return this.result('logout', {}); + }; + status = () => { + let refresh = localStorage.getItem('refresh'); + let userData = localStorage.getItem('userData'); + if (!refresh) return false; + if (refresh === 'undefined') { + localStorage.removeItem('refresh'); + localStorage.removeItem('userData'); + return false; + } + return JSON.parse(userData); + }; +} +const _proxy = new Proxy(); + +export default _proxy; diff --git a/src/Redux/reducers/chat.js b/src/Redux/reducers/chat.js new file mode 100644 index 0000000..4aa72da --- /dev/null +++ b/src/Redux/reducers/chat.js @@ -0,0 +1,25 @@ +const initialState = { + list: [], + info: { users: [] }, + bio: { + album: [], + images: [], + videos: [], + music: [], + documnet: [], + link: [], + }, +}; +export default function chat(state = initialState, action) { + let { type, data } = action; + switch (type) { + case 'chat/list': + return { ...state, list: data }; + case 'chat/info': + return { ...state, info: data }; + case 'chat/bio': + return { ...state, bio: data }; + default: + return state; + } +} diff --git a/src/Redux/reducers/index.js b/src/Redux/reducers/index.js new file mode 100644 index 0000000..8605f81 --- /dev/null +++ b/src/Redux/reducers/index.js @@ -0,0 +1,7 @@ +// @create-index + +export { default as chat } from './chat.js'; +export { default as message } from './message.js'; +export { default as public } from './public.js'; +export { default as user } from './user.js'; + diff --git a/src/Redux/reducers/message.js b/src/Redux/reducers/message.js new file mode 100644 index 0000000..4f00511 --- /dev/null +++ b/src/Redux/reducers/message.js @@ -0,0 +1,16 @@ +// const initialState = { +// list: [], +// }; +// export default function chat(state = initialState, action) { +// let { type, data } = action; +// switch (type) { +// case 'message/list': +// return { ...state, list: data }; +// case 'message/send': +// return { ...state, list: [...list, ...data] }; +// case 'message/sendKeys': +// return { ...state, list: [...list, ...data] }; +// default: +// return state; +// } +// } diff --git a/src/Redux/reducers/public.js b/src/Redux/reducers/public.js new file mode 100644 index 0000000..96c3db4 --- /dev/null +++ b/src/Redux/reducers/public.js @@ -0,0 +1,12 @@ +const initialState = { + otp: null, +}; +export default function publics(state = initialState, action) { + let { type, data } = action; + switch (type) { + case 'public/otp': + return { ...state, ...data }; + default: + return state; + } +} diff --git a/src/Redux/reducers/user.js b/src/Redux/reducers/user.js new file mode 100644 index 0000000..6dbe2cd --- /dev/null +++ b/src/Redux/reducers/user.js @@ -0,0 +1,15 @@ +import proxy from '../proxy'; +const initialState = { + isLogin: proxy.status(), +}; +export default function user(state = initialState, action) { + let { type, data } = action; + switch (type) { + case 'login': + return { ...state, ...proxy.status(), islogin: proxy.status(), ...data }; + case 'logout': + return { ...state, islogin: proxy.status() }; + default: + return state; + } +} diff --git a/src/Redux/store.js b/src/Redux/store.js new file mode 100644 index 0000000..15d823a --- /dev/null +++ b/src/Redux/store.js @@ -0,0 +1,13 @@ +import { createStore, applyMiddleware } from 'redux'; +import { composeWithDevTools } from 'redux-devtools-extension'; +import { combineReducers } from 'redux'; +import * as reducers from './reducers'; +import thunk from 'redux-thunk'; +const initialState = {}; +const middleware = [thunk]; +const store = createStore( + combineReducers(reducers), + initialState, + composeWithDevTools(applyMiddleware(...middleware)) +); +export default store; diff --git a/src/assets/IRANSans/About_Different_formats.pdf b/src/assets/IRANSans/About_Different_formats.pdf new file mode 100644 index 0000000..d5f7054 Binary files /dev/null and b/src/assets/IRANSans/About_Different_formats.pdf differ diff --git a/src/assets/IRANSans/About_Different_formats.png b/src/assets/IRANSans/About_Different_formats.png new file mode 100644 index 0000000..251d5d6 Binary files /dev/null and b/src/assets/IRANSans/About_Different_formats.png differ diff --git a/src/assets/IRANSans/Farsi_numerals/Black.ttf b/src/assets/IRANSans/Farsi_numerals/Black.ttf new file mode 100644 index 0000000..5870d25 Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/Black.ttf differ diff --git a/src/assets/IRANSans/Farsi_numerals/Bold.ttf b/src/assets/IRANSans/Farsi_numerals/Bold.ttf new file mode 100644 index 0000000..7030427 Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/Bold.ttf differ diff --git a/src/assets/IRANSans/Farsi_numerals/English to Farsi numbers help.pdf b/src/assets/IRANSans/Farsi_numerals/English to Farsi numbers help.pdf new file mode 100644 index 0000000..8ffdbeb Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/English to Farsi numbers help.pdf differ diff --git a/src/assets/IRANSans/Farsi_numerals/Farsi_numerals.png b/src/assets/IRANSans/Farsi_numerals/Farsi_numerals.png new file mode 100644 index 0000000..985a9d4 Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/Farsi_numerals.png differ diff --git a/src/assets/IRANSans/Farsi_numerals/IRANSans(FaNum).ttf b/src/assets/IRANSans/Farsi_numerals/IRANSans(FaNum).ttf new file mode 100644 index 0000000..10f2a48 Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/IRANSans(FaNum).ttf differ diff --git a/src/assets/IRANSans/Farsi_numerals/IRANSans(FaNum)_Medium.ttf b/src/assets/IRANSans/Farsi_numerals/IRANSans(FaNum)_Medium.ttf new file mode 100644 index 0000000..4913cd8 Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/IRANSans(FaNum)_Medium.ttf differ diff --git a/src/assets/IRANSans/Farsi_numerals/IRANSans(FaNum)_UltraLight.ttf b/src/assets/IRANSans/Farsi_numerals/IRANSans(FaNum)_UltraLight.ttf new file mode 100644 index 0000000..758b923 Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/IRANSans(FaNum)_UltraLight.ttf differ diff --git a/src/assets/IRANSans/Farsi_numerals/MobileFonts/IRANSansMobile(FaNum).ttf b/src/assets/IRANSans/Farsi_numerals/MobileFonts/IRANSansMobile(FaNum).ttf new file mode 100644 index 0000000..c60002a Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/MobileFonts/IRANSansMobile(FaNum).ttf differ diff --git a/src/assets/IRANSans/Farsi_numerals/MobileFonts/IRANSansMobile(FaNum)_Black.ttf b/src/assets/IRANSans/Farsi_numerals/MobileFonts/IRANSansMobile(FaNum)_Black.ttf new file mode 100644 index 0000000..411ef9e Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/MobileFonts/IRANSansMobile(FaNum)_Black.ttf differ diff --git a/src/assets/IRANSans/Farsi_numerals/MobileFonts/IRANSansMobile(FaNum)_Bold.ttf b/src/assets/IRANSans/Farsi_numerals/MobileFonts/IRANSansMobile(FaNum)_Bold.ttf new file mode 100644 index 0000000..09fab2b Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/MobileFonts/IRANSansMobile(FaNum)_Bold.ttf differ diff --git a/src/assets/IRANSans/Farsi_numerals/MobileFonts/IRANSansMobile(FaNum)_Light.ttf b/src/assets/IRANSans/Farsi_numerals/MobileFonts/IRANSansMobile(FaNum)_Light.ttf new file mode 100644 index 0000000..ecdac1d Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/MobileFonts/IRANSansMobile(FaNum)_Light.ttf differ diff --git a/src/assets/IRANSans/Farsi_numerals/MobileFonts/IRANSansMobile(FaNum)_Medium.ttf b/src/assets/IRANSans/Farsi_numerals/MobileFonts/IRANSansMobile(FaNum)_Medium.ttf new file mode 100644 index 0000000..3dc55d0 Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/MobileFonts/IRANSansMobile(FaNum)_Medium.ttf differ diff --git a/src/assets/IRANSans/Farsi_numerals/MobileFonts/IRANSansMobile(FaNum)_UltraLight.ttf b/src/assets/IRANSans/Farsi_numerals/MobileFonts/IRANSansMobile(FaNum)_UltraLight.ttf new file mode 100644 index 0000000..6564159 Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/MobileFonts/IRANSansMobile(FaNum)_UltraLight.ttf differ diff --git a/src/assets/IRANSans/Farsi_numerals/MobileFonts/MobileFonts.png b/src/assets/IRANSans/Farsi_numerals/MobileFonts/MobileFonts.png new file mode 100644 index 0000000..2aedf87 Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/MobileFonts/MobileFonts.png differ diff --git a/src/assets/IRANSans/Farsi_numerals/light.ttf b/src/assets/IRANSans/Farsi_numerals/light.ttf new file mode 100644 index 0000000..fe57ae6 Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/light.ttf differ diff --git a/src/assets/IRANSans/Farsi_numerals/webFonts/IRANSans.html b/src/assets/IRANSans/Farsi_numerals/webFonts/IRANSans.html new file mode 100644 index 0000000..89af37a --- /dev/null +++ b/src/assets/IRANSans/Farsi_numerals/webFonts/IRANSans.html @@ -0,0 +1,281 @@ + + + + +IRANSans Family Type face: خانواده فونت ایران سن سریف + + + + + + + +
+ +
+
+

بِسْمِ الله الرَّحْمَنِ الرَّحِيمِ

+
+
د
+
+
+ ن وَالْقَلَمِ وَ مَا يَسْطُرُون +
+ نون؛ سوگند به قلم و آنچه می نويسند. +
+ Noon. I swear by the pen and what the angels write +
+
+
+
+ +
+ +
+

نکاتی درباره تایپوگرافی وب

+
+ +
خ
+
+

از زمان پیدایش نخستین وب سایت، متن ها یکی از اجزای مهم صفحات وب بودند. هر چند به مرور زمان با ورود تصاویر، صوت و فیلم کمی از بار مسئولیت متون کم شد اما هنوز جایگاه خود را از دست نداده اند و بخش مهمی از کار را به عهده دارند.

+

بسیاری از طراحان وب سایت به صورت تجربی بهترین ترکیب و ظاهر را برای نمایش متن ها انتخاب می کنند. اما اصولی وجود دارد که با رعایت آن ها، تاثیرپذیری و زیبایی سایت چند برابر خواهد شد.

+

در ادامه مطلب قصد داریم تعدادی از اصول مقدماتی تایپوگرافی را به اختصار مرور کنیم. هرچند بسیاری از دوستان با این نکات آشنا هستند؛ اما شاید مرور آن ها خالی از لطف نباشد.

+
+ + +
+ +
+
+

تاثیر اندازه فونت و سلسله مراتب تگ‌ها

+
+
پ
+
+

فونت های داخل سایت باید به گونه ای قرار گیرند که کاربر به راحتی بتواند آن ها را بخواند. نوع فونت، وزن و کوچک (یا بزرگ) بودن اندازه آن ممکن است تمایل کاربر برای بازگشت به وب سایت را کاهش دهد. قواعد و قوانین زیادی برای انتخاب بهترین فونت وجود دارد.

+

در زیر می توانید ۵ وزن مختلف خانواده فونت ایران سن سریف را در شرایط یکسان مشاهده کنید. لازم به ذکر است برای این صفحه از وزن نازک (Light) استفاده شده است.

+
+
+ + +
+
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Ultra Light)
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Light)
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Regular)
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Medium)
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Bold)
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Black)
+
+
+ +
+
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Ultra Light)
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Light)
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Regular)
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Medium)
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Bold)
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Black)
+
+
+ +
+
+

تگ‌های هدینگ

+
+
ی
+
+

در این بین، استفاده از تگ های هدینگ مناسب و رعایت سلسله مراتب آن ها، هم مفهوم نوشته را بهتر منتقل می کند و هم تاثیر قابل توجهی در نتایج موتورهای جستجو خواهد داشت. این نکته یکی از فاکتورهای مهم در بهینه سازی وب سایت برای موتورهای جستجو (Search Engine Optimization) است.

+

نمونه ای از خروجی تگ های هدینگ با سایز استاندارد مربوطه به فونت های فونت ایران را در زیر مشاهده می کنید.

+
+
+ +
+
+

(H1) نابرده رنج گنج میسر نمی شود. No gain without pain

+

(H2) نابرده رنج گنج میسر نمی شود. No gain without pain

+

(H3) نابرده رنج گنج میسر نمی شود. No gain without pain

+

(H4) نابرده رنج گنج میسر نمی شود. No gain without pain

+
(H5) نابرده رنج گنج میسر نمی شود. No gain without pain
+
(H6) نابرده رنج گنج میسر نمی شود. No gain without pain
+
+
+ +
+
+

(H1) نابرده رنج گنج میسر نمی شود. No gain without pain

+

(H2) نابرده رنج گنج میسر نمی شود. No gain without pain

+

(H3) نابرده رنج گنج میسر نمی شود. No gain without pain

+

(H4) نابرده رنج گنج میسر نمی شود. No gain without pain

+
(H5) نابرده رنج گنج میسر نمی شود. No gain without pain
+
(H6) نابرده رنج گنج میسر نمی شود. No gain without pain
+
+
+ +
+
+

سطر و ستون بندی

+
+
م
+
+

معمولاً هرگاه مقدار نوشته از یک سطر بیشتر شود ناگزیر به ستون بندی هستیم. و این کار ما را با چند متغییر مواجه خواهد کرد:

+

۱- عرض ستون‌های متنی که حاوی حداقل۷ کلمه باشد بهترین انتخاب است. اگر ستون کوتاه‌تر باشد چشم بیننده در اثر حرکت‌های زود به زود از پایان یک سطر به ابتدای سطر بعدی خسته خواهد شد. علاوه بر این لبه ستون‌هایی با عرض کم نیز همیشه دندانه ای و بی نظم خواهد بود. ستون‌هایی با عرض طولانی هم برای خواننده آزار دهنده است چرا که چشم در حرکت بازگشت از انتهای یک سطر به ابتدای سطر بعدی ممکن است دچار اشتباه شود. + +

۲- لدینگ یا همان فاصله سطر هم در ستون بندی اهمیت دارد. ستون‌های فشرده اگرچه به لحاظ گرافیکی منسجم و زیبا هستند اما عمل خواندن را مختل می کنند و در مقابل، فاصله سطر زیاد نیز باعث نازیبایی و خستگی چشم خواننده می‌شود. فاصله سطر همیشه می تواند با توجه به نوع فونت و عرض ستون‌ها تغییر کند. بدین ترتیب که فونت‌هایی با دندانه‌های بلند‌تر و ستون‌هایی با عرض بیشتر به لدینگ بیشتری نیاز دارند. +

۳- همترازی هم یکی از متغییرهای پر بحث در ستون بندی است. اما به طور کوتاه و خلاصه باید گفت که بهتر است در متن فارسی از همترازی یا همان Justification استفاده نکنید. این عمل اگرچه لبه پاراگراف شما را مرتب خواهد کرد اما تنظیمات فاصله حروف را تغییر خواهد داد و در نتیجه باعث کاهش خوانایی خواهد شد.

+
+ +
+
(IRANSans Ultra Light)
+
ایران سن سریف IRANSans سبکی ساده و ضخامت یکسان از قلم ایران است که با وجود حفظ ساختار قلم‌های رایج ایرانی حال و هوای مدرن و امروزی دارد. سادگی شکل‌ حروف و استفاده از حداقل شکستگی باعث شده است این تایپ فیس علاوه بر خوانا بودن زیبا و چشم نواز نیز باشد. این فونت با سبک‌های طراحی کمینه‌گرا Minimal سازگاری خوبی دارد و همنشین مناسبی برای فونت‌های سن‌سریف لاتین است. خانواده فونت ایران سن‌سریف در سال ۱۳۹۴ پرطرفدارترین فونت فارسی بوده است.
+ +
+Roboto has a dual nature. It has a mechanical skeleton and the forms are largely geometric. At the same time, the font features friendly and open curves. While some grotesks distort their letterforms to force a rigid rhythm, Roboto doesn’t compromise, allowing letters to be settled into their natural width. This makes for a more natural reading rhythm more commonly found in humanist and serif types. +
+ +
+ +
+
(IRANSans Light)
+
ایران سن سریف IRANSans سبکی ساده و ضخامت یکسان از قلم ایران است که با وجود حفظ ساختار قلم‌های رایج ایرانی حال و هوای مدرن و امروزی دارد. سادگی شکل‌ حروف و استفاده از حداقل شکستگی باعث شده است این تایپ فیس علاوه بر خوانا بودن زیبا و چشم نواز نیز باشد. این فونت با سبک‌های طراحی کمینه‌گرا Minimal سازگاری خوبی دارد و همنشین مناسبی برای فونت‌های سن‌سریف لاتین است. خانواده فونت ایران سن‌سریف در سال ۱۳۹۴ پرطرفدارترین فونت فارسی بوده است.
+ +
+Roboto has a dual nature. It has a mechanical skeleton and the forms are largely geometric. At the same time, the font features friendly and open curves. While some grotesks distort their letterforms to force a rigid rhythm, Roboto doesn’t compromise, allowing letters to be settled into their natural width. This makes for a more natural reading rhythm more commonly found in humanist and serif types. +
+ +
+ +
+
(IRANSans Regular)
+
ایران سن سریف IRANSans سبکی ساده و ضخامت یکسان از قلم ایران است که با وجود حفظ ساختار قلم‌های رایج ایرانی حال و هوای مدرن و امروزی دارد. سادگی شکل‌ حروف و استفاده از حداقل شکستگی باعث شده است این تایپ فیس علاوه بر خوانا بودن زیبا و چشم نواز نیز باشد. این فونت با سبک‌های طراحی کمینه‌گرا Minimal سازگاری خوبی دارد و همنشین مناسبی برای فونت‌های سن‌سریف لاتین است. خانواده فونت ایران سن‌سریف در سال ۱۳۹۴ پرطرفدارترین فونت فارسی بوده است.
+ +
+Roboto has a dual nature. It has a mechanical skeleton and the forms are largely geometric. At the same time, the font features friendly and open curves. While some grotesks distort their letterforms to force a rigid rhythm, Roboto doesn’t compromise, allowing letters to be settled into their natural width. This makes for a more natural reading rhythm more commonly found in humanist and serif types. +
+ +
+ +
+
(IRANSans Medium)
+
ایران سن سریف IRANSans سبکی ساده و ضخامت یکسان از قلم ایران است که با وجود حفظ ساختار قلم‌های رایج ایرانی حال و هوای مدرن و امروزی دارد. سادگی شکل‌ حروف و استفاده از حداقل شکستگی باعث شده است این تایپ فیس علاوه بر خوانا بودن زیبا و چشم نواز نیز باشد. این فونت با سبک‌های طراحی کمینه‌گرا Minimal سازگاری خوبی دارد و همنشین مناسبی برای فونت‌های سن‌سریف لاتین است. خانواده فونت ایران سن‌سریف در سال ۱۳۹۴ پرطرفدارترین فونت فارسی بوده است.
+ +
+Roboto has a dual nature. It has a mechanical skeleton and the forms are largely geometric. At the same time, the font features friendly and open curves. While some grotesks distort their letterforms to force a rigid rhythm, Roboto doesn’t compromise, allowing letters to be settled into their natural width. This makes for a more natural reading rhythm more commonly found in humanist and serif types. +
+ +
+
+
(IRANSans Bold)
+
ایران سن سریف IRANSans سبکی ساده و ضخامت یکسان از قلم ایران است که با وجود حفظ ساختار قلم‌های رایج ایرانی حال و هوای مدرن و امروزی دارد. سادگی شکل‌ حروف و استفاده از حداقل شکستگی باعث شده است این تایپ فیس علاوه بر خوانا بودن زیبا و چشم نواز نیز باشد. این فونت با سبک‌های طراحی کمینه‌گرا Minimal سازگاری خوبی دارد و همنشین مناسبی برای فونت‌های سن‌سریف لاتین است. خانواده فونت ایران سن‌سریف در سال ۱۳۹۴ پرطرفدارترین فونت فارسی بوده است.
+ +
+Roboto has a dual nature. It has a mechanical skeleton and the forms are largely geometric. At the same time, the font features friendly and open curves. While some grotesks distort their letterforms to force a rigid rhythm, Roboto doesn’t compromise, allowing letters to be settled into their natural width. This makes for a more natural reading rhythm more commonly found in humanist and serif types. +
+ +
+ +
+
(IRANSans Black)
+
ایران سن سریف IRANSans سبکی ساده و ضخامت یکسان از قلم ایران است که با وجود حفظ ساختار قلم‌های رایج ایرانی حال و هوای مدرن و امروزی دارد. سادگی شکل‌ حروف و استفاده از حداقل شکستگی باعث شده است این تایپ فیس علاوه بر خوانا بودن زیبا و چشم نواز نیز باشد. این فونت با سبک‌های طراحی کمینه‌گرا Minimal سازگاری خوبی دارد و همنشین مناسبی برای فونت‌های سن‌سریف لاتین است. خانواده فونت ایران سن‌سریف در سال ۱۳۹۴ پرطرفدارترین فونت فارسی بوده است.
+ +
+Roboto has a dual nature. It has a mechanical skeleton and the forms are largely geometric. At the same time, the font features friendly and open curves. While some grotesks distort their letterforms to force a rigid rhythm, Roboto doesn’t compromise, allowing letters to be settled into their natural width. This makes for a more natural reading rhythm more commonly found in humanist and serif types. +
+ +
+ +
+
+

اعداد و علائم در فونت فارسی

+
+
ظ
+
+

اعداد فارسی: ۱۲۳۴۵۶۷۸۹۰
+ اعداد عربی: ۱۲۳٤٥٦۷۸۹۰
+ اعداد انگلیسی: 1234567890

+

برای تایپ اعداد فارسی در محیط وب از کیبورد استاندارد فارسی استفاده کنید. در ویندوز ۸ و یا بالاتر این کیبورد، با نام Persian(Standard)Keyboard در لیست کیبوردهای ویندوز وجود دارد. همچنین می توانید از این آدرس آن را دانلود و نصب کنید.

+ +

با استفاده از کیبورد استاندارد می‌توانید ممیز فارسی را تایپ کنید.
+ میانبر این علامت کلیدهای Shift+3 است. به این شکل: ۳٫۱۴
+ ممیز فارسی با علامت اسلش تفاوت دارد :۳/۱۴ +

+

با استفاده از کیبورد استاندارد می‌توانید جداکننده هزارگان فارسی را تایپ کنید.
+ میانبر این علامت کلیدهای Shift+2 است. به این شکل: ۹٬۲۱۰٬۰۰۰
+ این علامت با جدا کننده هزارگان انگلیسی تفاوت دارد : ۹,۲۱۰,۰۰۰ +

+
+
+ +
+
+

نسبت‌های طلایی

+
+
+
+ ۳٫۷۷۷ ÷ ۱٫۶۱۸ = ۲٫۳۳۵ +
+ ۶٫۱۱۲ ÷ ۱٫۶۱۸ = ۳٫۷۷۷ +
+ ۹٫۸۸۹ ÷ ۱٫۶۱۸ = ۶٫۱۱۲ +
+ ۱۶ ÷ ۱٫۶۱۸ = ۹٫۸۸۹ +
+....................................... +
+ ۱۶ × ۱٫۶۱۸ = ۲۵٫۸۸۸ +
+ ۲۵٫۸۸۸ × ۱٫۶۱۸ = ۴۱٫۸۸۷ +
+ ۴۱٫۸۸۷ × ۱٫۶۱۸ = ۶۷٫۷۷۳ +
+ ۶۷٫۷۷۳ × ۱٫۶۱۸ = ۱۰۹٫۶۵۶ +
+
+
+

اهمیت اندازه فونت در خوانایی و زیبا شدن صفحه وب سایت بر کسی پوشیده نیست. در کنار این بحث، موارد دیگری مانند ارتفاع خطوط، فاصله ها، ابعاد قسمت های مختلف و ... نیز در بحث تایپوگرافی اهمیت زیادی دارند.

+

برای محاسبه این اعداد می توانیم از سری اعداد متناسب (Modular Scale) استفاده کنیم. در حقیقت از تعدادی عدد پشت سر هم که بر اساس مضرب خاصی تشکیل شده اند برای تنظیمات ارتفاع خط، فاصله ها، ابعاد و ... استفاده می کنیم. نسبت (عدد) طلایی همان مضرب اعداد است.

+

به عنوان مثال می خواهیم از سایز 16px فونت ایران سن سریف به عنوان فونت و سایز اصلی متن صفحات استفاده کنیم. عدد فی (phi) یونانی که معادل ۱٫۶۱۸۰۳۳۹۸۸۷ (به اختصار ۱٫۶۱۸) است را به عنوان نسبت طلایی در نظر می گیریم. بنابراین سری اعدادی به شکل روبرو خواهیم داشت:

+ +

+ به کمک این اعداد و استفاده از آن ها در صفحات وب سایت خود می توانیم خوانایی و زیبایی آن را افزایش دهیم. علاوه بر آن، اگر از واحدهای نسبی مانند em استفاده شود، امکانات بیشتری در اختیار طراح و بازدیدکننده خواهد بود. البته سری اعداد بر مبنای نسبت طلایی فقط در تایپوگرافی وب سایت کاربرد ندارد. + این اعداد می تواند ادامه داشته باشد (۱٬۲۱۵٫۹۸۱ ، ۱٬۹۶۷٫۴۵۷ ، ۳٬۱۸۳٫۳۴۵ و ...). +

+ +
+
+ +
+

خوانایی لینک‌ها

+
غ
+
+

شاید بتوانیم از لینک ها (hyperlinks) به عنوان مهم ترین بخش وب سایت ها در ارتباط با سئو (SEO) و نیز یکی از پرکاربردترین اجزای وب سایت نام ببریم. بنابراین بازدیدکننده باید بتواند به راحتی آن ها را از سایر محتوای صفحه تشخیص داده و متن لینک شده را به سرعت و بدون مزاحمت مشاهده کند.

+

به صورت پیش فرض، متن هایی که داخل یک هایپرلینک قرار می گیرند، زیر خط دار یا underline می شوند (مانند این لینک یا پیوند به صفحه اصلی فونت ایران). در بسیاری از فونت های فارسی، این خط روی متن و نقطه ها قرار می گیرد (مانند این لینک یا پیوند به صفحه اصلی فونت ایران با فونت تاهوما).

+

در صورت بروز این مشکل، یا باید خط زیرین تمام تگ های «a» غیر فعال شود و یا با ترفندهایی به شکل دیگر ایجاد شود (مانند قرار دادن border-bottom برای تگ های «a»).

+

همچنین پیشنهاد می کنیم از قراردادن افکت ها و transition های آزاردهنده روی لینک ها پرهیز کرده و برای راحتی کاربر از padding و color با کانتراست مناسب نسبت به زمینه استفاده کنید.

+
+
+ + + +
+
+
+در این فایل سعی کردیم همراه با یک مطلب آموزشی کوتاه، نحوه استفاده از خانواده فونت ایران سن سریف و پیش نمایشی از قسمت های مختلف آن را مرور کنیم. +
+برای مشاهده راهنمای نحوه قراردادن فونت ها در وب سایت خود، به این آدرس مراجعه کنید. +
+
+
+
ء
+
+ +
+ +
+ + \ No newline at end of file diff --git a/src/assets/IRANSans/Farsi_numerals/webFonts/WebFonts.png b/src/assets/IRANSans/Farsi_numerals/webFonts/WebFonts.png new file mode 100644 index 0000000..82d3e21 Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/webFonts/WebFonts.png differ diff --git a/src/assets/IRANSans/Farsi_numerals/webFonts/css/fontiran.css b/src/assets/IRANSans/Farsi_numerals/webFonts/css/fontiran.css new file mode 100644 index 0000000..207febc --- /dev/null +++ b/src/assets/IRANSans/Farsi_numerals/webFonts/css/fontiran.css @@ -0,0 +1,86 @@ +/** +* +* Name: IRAN Sans-Serif Font +* Version: 5.0 +* Author: Moslem Ebrahimi (moslemebrahimi.com) +* Created on: Dec 25, 2012 +* Updated on: Sep 01, 2017 +* Website: http://fontiran.com +* Copyright: Commercial/Proprietary Software +-------------------------------------------------------------------------------------- +فونت های ایران سن سریف یک نرم افزار مالکیتی محسوب می شود. جهت آگاهی از قوانین استفاده از این فونت ها لطفا به وب سایت (فونت ایران دات کام) مراجعه نمایید +-------------------------------------------------------------------------------------- +IRAN Sans-serif fonts are considered a proprietary software. To gain information about the laws regarding the use of these fonts, please visit www.fontiran.com +-------------------------------------------------------------------------------------- +This set of fonts are used in this project under the license: (.....) +-------------------------------------------------------------------------------------- +* +**/ +@font-face { + font-family: IRANSans; + font-style: normal; + font-weight: 900; + src: url('../fonts/eot/IRANSansWeb(FaNum)_Black.eot'); + src: url('../fonts/eot/IRANSansWeb(FaNum)_Black.eot?#iefix') format('embedded-opentype'), + /* IE6-8 */ url('../fonts/woff2/IRANSansWeb(FaNum)_Black.woff2') format('woff2'), + /* FF39+,Chrome36+, Opera24+*/ url('../fonts/woff/IRANSansWeb(FaNum)_Black.woff') format('woff'), + /* FF3.6+, IE9, Chrome6+, Saf5.1+*/ url('../fonts/ttf/IRANSansWeb(FaNum)_Black.ttf') + format('truetype'); +} +@font-face { + font-family: IRANSans; + font-style: normal; + font-weight: bold; + src: url('../fonts/eot/IRANSansWeb(FaNum)_Bold.eot'); + src: url('../fonts/eot/IRANSansWeb(FaNum)_Bold.eot?#iefix') format('embedded-opentype'), + /* IE6-8 */ url('../fonts/woff2/IRANSansWeb(FaNum)_Bold.woff2') format('woff2'), + /* FF39+,Chrome36+, Opera24+*/ url('../fonts/woff/IRANSansWeb(FaNum)_Bold.woff') format('woff'), + /* FF3.6+, IE9, Chrome6+, Saf5.1+*/ url('../fonts/ttf/IRANSansWeb(FaNum)_Bold.ttf') + format('truetype'); +} +@font-face { + font-family: IRANSans; + font-style: normal; + font-weight: 500; + src: url('../fonts/eot/IRANSansWeb(FaNum)_Medium.eot'); + src: url('../fonts/eot/IRANSansWeb(FaNum)_Medium.eot?#iefix') format('embedded-opentype'), + /* IE6-8 */ url('../fonts/woff2/IRANSansWeb(FaNum)_Medium.woff2') format('woff2'), + /* FF39+,Chrome36+, Opera24+*/ url('../fonts/woff/IRANSansWeb(FaNum)_Medium.woff') + format('woff'), + /* FF3.6+, IE9, Chrome6+, Saf5.1+*/ url('../fonts/ttf/IRANSansWeb(FaNum)_Medium.ttf') + format('truetype'); +} +@font-face { + font-family: IRANSans; + font-style: normal; + font-weight: 300; + src: url('../fonts/eot/IRANSansWeb(FaNum)_Light.eot'); + src: url('../fonts/eot/IRANSansWeb(FaNum)_Light.eot?#iefix') format('embedded-opentype'), + /* IE6-8 */ url('../fonts/woff2/IRANSansWeb(FaNum)_Light.woff2') format('woff2'), + /* FF39+,Chrome36+, Opera24+*/ url('../fonts/woff/IRANSansWeb(FaNum)_Light.woff') format('woff'), + /* FF3.6+, IE9, Chrome6+, Saf5.1+*/ url('../fonts/ttf/IRANSansWeb(FaNum)_Light.ttf') + format('truetype'); +} +@font-face { + font-family: IRANSans; + font-style: normal; + font-weight: 200; + src: url('../fonts/eot/IRANSansWeb(FaNum)_UltraLight.eot'); + src: url('../fonts/eot/IRANSansWeb(FaNum)_UltraLight.eot?#iefix') format('embedded-opentype'), + /* IE6-8 */ url('../fonts/woff2/IRANSansWeb(FaNum)_UltraLight.woff2') format('woff2'), + /* FF39+,Chrome36+, Opera24+*/ url('../fonts/woff/IRANSansWeb(FaNum)_UltraLight.woff') + format('woff'), + /* FF3.6+, IE9, Chrome6+, Saf5.1+*/ url('../fonts/ttf/IRANSansWeb(FaNum)_UltraLight.ttf') + format('truetype'); +} +@font-face { + font-family: IRANSans; + font-style: normal; + font-weight: normal; + src: url('../fonts/eot/IRANSansWeb(FaNum).eot'); + src: url('../fonts/eot/IRANSansWeb(FaNum).eot?#iefix') format('embedded-opentype'), + /* IE6-8 */ url('../fonts/woff2/IRANSansWeb(FaNum).woff2') format('woff2'), + /* FF39+,Chrome36+, Opera24+*/ url('../fonts/woff/IRANSansWeb(FaNum).woff') format('woff'), + /* FF3.6+, IE9, Chrome6+, Saf5.1+*/ url('../fonts/ttf/IRANSansWeb(FaNum).ttf') + format('truetype'); +} diff --git a/src/assets/IRANSans/Farsi_numerals/webFonts/css/style.css b/src/assets/IRANSans/Farsi_numerals/webFonts/css/style.css new file mode 100644 index 0000000..b5457ff --- /dev/null +++ b/src/assets/IRANSans/Farsi_numerals/webFonts/css/style.css @@ -0,0 +1,191 @@ +@import url(fontiran.css); /* لینک فایلی که وظیفه بارگذاری فونت ها را برعهده دارد */ +body { + font-family: IRANSans !important; + font-weight: 300; + direction: rtl; + background-color: #e2e2e2; + margin: 0; +} +h1, +h2, +h3, +h4, +h5, +h6, +input, +textarea { + font-family: IRANSans !important; +} +h1 { + font-weight: bold; +} +.wrapper { + max-width: 900px; + margin: 0 auto; +} +.ltr { + direction: ltr; +} +.text-right { + text-align: right; +} +.text-center { + text-align: center; +} +.text-left { + text-align: left; +} +.text-small { + font-size: 0.8em; +} +.text-xsmall { + font-size: 0.6em; +} +.text-large { + font-size: 1.2em; +} +.text-xlarge { + font-size: 1.4em; +} +.text-underline { + text-decoration: underline; +} +.text-ultralight { + font-weight: 200; +} +.text-light { + font-weight: 300; +} +.text-regular { + font-weight: normal; +} +.text-medium { + font-weight: 500; +} +.text-bold { + font-weight: bold; +} +.text-black { + font-weight: 900; +} +blockquote { + font-weight: 500; + padding: 10px; + border: 1px dashed #666666; +} + +.mainbox { + width: 100%; + background-color: #efefef; + display: table; + margin-bottom: 30px; + border-right: 8px solid #ffff33; +} + +.mainboxnegativ { + width: 100%; + background-color: #000000; + display: table; + margin-bottom: 30px; + border-right: 8px solid #ffff33; + color: #f9f9f9; +} + +.mainbox2 { + font-size: 1em; + width: 90%; + padding-right: 20px; + padding-top: 10px; + padding-bottom: 10px; +} + +.mainbox3 { + width: 100%; + background-color: #b8b8b8; + display: table; + margin-bottom: 30px; + border-right: 8px solid #bd70ff; +} + +.mainbox2negativ { + font-size: 1em; + color: #f9f9f9; + background-color: #000000; + padding-right: 20px; +} + +.farsiparagraph { + font-size: 1em; + width: 47%; + float: right; + padding-right: 20px; + padding-top: 10px; + padding-bottom: 10px; +} +.englishparagraph { + font-size: 1em; + width: 47%; + float: left; + direction: ltr; + padding-left: 20px; + padding-top: 10px; + padding-bottom: 10px; +} +.rightbox { + width: 60%; + padding-right: 20px; + padding-left: 5px; + float: right; + margin-left: 10px; + margin-bottom: 0px; + min-width: 0px; + background-color: #f7f7f7; +} + +.titelbox { + width: 60%; + padding-right: 25px; + padding-left: 0px; + float: right; + margin-left: 10px; + margin-bottom: 0px; + min-width: 0px; + background-color: #f2f2f2; + color: #4b4b4b; +} + +.lefttbox { + padding-right: 20px; + padding-left: 4px; + float: right; + margin-bottom: 10px; + min-width: 0px; +} + +.alphabet { + width: 35%; + float: left; + font-size: 21em; + text-align: center; + font-weight: 500; + color: #999999; +} + +.alphabet2 { + width: 35%; + float: left; + direction: ltr; + font-size: 1.6em; + text-align: left; + font-weight: 500; + color: #333333; + margin-top: 100px; +} +.footer { + font-weight: 300; + font-size: 0.7em; + text-align: center; + direction: ltr; + margin-bottom: 0px; + padding-bottom: 0px; +} diff --git a/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/eot/IRANSansWeb(FaNum).eot b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/eot/IRANSansWeb(FaNum).eot new file mode 100644 index 0000000..5a6fdd0 Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/eot/IRANSansWeb(FaNum).eot differ diff --git a/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/eot/IRANSansWeb(FaNum)_Black.eot b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/eot/IRANSansWeb(FaNum)_Black.eot new file mode 100644 index 0000000..a012bc6 Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/eot/IRANSansWeb(FaNum)_Black.eot differ diff --git a/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/eot/IRANSansWeb(FaNum)_Bold.eot b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/eot/IRANSansWeb(FaNum)_Bold.eot new file mode 100644 index 0000000..82525e5 Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/eot/IRANSansWeb(FaNum)_Bold.eot differ diff --git a/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/eot/IRANSansWeb(FaNum)_Light.eot b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/eot/IRANSansWeb(FaNum)_Light.eot new file mode 100644 index 0000000..f899008 Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/eot/IRANSansWeb(FaNum)_Light.eot differ diff --git a/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/eot/IRANSansWeb(FaNum)_Medium.eot b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/eot/IRANSansWeb(FaNum)_Medium.eot new file mode 100644 index 0000000..117c2c8 Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/eot/IRANSansWeb(FaNum)_Medium.eot differ diff --git a/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/eot/IRANSansWeb(FaNum)_UltraLight.eot b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/eot/IRANSansWeb(FaNum)_UltraLight.eot new file mode 100644 index 0000000..9cd9b66 Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/eot/IRANSansWeb(FaNum)_UltraLight.eot differ diff --git a/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/ttf/IRANSansWeb(FaNum).ttf b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/ttf/IRANSansWeb(FaNum).ttf new file mode 100644 index 0000000..cd74265 Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/ttf/IRANSansWeb(FaNum).ttf differ diff --git a/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/ttf/IRANSansWeb(FaNum)_Black.ttf b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/ttf/IRANSansWeb(FaNum)_Black.ttf new file mode 100644 index 0000000..0f84dbf Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/ttf/IRANSansWeb(FaNum)_Black.ttf differ diff --git a/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/ttf/IRANSansWeb(FaNum)_Bold.ttf b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/ttf/IRANSansWeb(FaNum)_Bold.ttf new file mode 100644 index 0000000..6fa2412 Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/ttf/IRANSansWeb(FaNum)_Bold.ttf differ diff --git a/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/ttf/IRANSansWeb(FaNum)_Light.ttf b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/ttf/IRANSansWeb(FaNum)_Light.ttf new file mode 100644 index 0000000..d9000c9 Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/ttf/IRANSansWeb(FaNum)_Light.ttf differ diff --git a/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/ttf/IRANSansWeb(FaNum)_Medium.ttf b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/ttf/IRANSansWeb(FaNum)_Medium.ttf new file mode 100644 index 0000000..e20001c Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/ttf/IRANSansWeb(FaNum)_Medium.ttf differ diff --git a/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/ttf/IRANSansWeb(FaNum)_UltraLight.ttf b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/ttf/IRANSansWeb(FaNum)_UltraLight.ttf new file mode 100644 index 0000000..0072606 Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/ttf/IRANSansWeb(FaNum)_UltraLight.ttf differ diff --git a/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff/IRANSansWeb(FaNum).woff b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff/IRANSansWeb(FaNum).woff new file mode 100644 index 0000000..e34dfc4 Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff/IRANSansWeb(FaNum).woff differ diff --git a/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff/IRANSansWeb(FaNum)_Black.woff b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff/IRANSansWeb(FaNum)_Black.woff new file mode 100644 index 0000000..bbbca77 Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff/IRANSansWeb(FaNum)_Black.woff differ diff --git a/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff/IRANSansWeb(FaNum)_Bold.woff b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff/IRANSansWeb(FaNum)_Bold.woff new file mode 100644 index 0000000..05d933e Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff/IRANSansWeb(FaNum)_Bold.woff differ diff --git a/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff/IRANSansWeb(FaNum)_Light.woff b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff/IRANSansWeb(FaNum)_Light.woff new file mode 100644 index 0000000..fe80d47 Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff/IRANSansWeb(FaNum)_Light.woff differ diff --git a/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff/IRANSansWeb(FaNum)_Medium.woff b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff/IRANSansWeb(FaNum)_Medium.woff new file mode 100644 index 0000000..f13a870 Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff/IRANSansWeb(FaNum)_Medium.woff differ diff --git a/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff/IRANSansWeb(FaNum)_UltraLight.woff b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff/IRANSansWeb(FaNum)_UltraLight.woff new file mode 100644 index 0000000..9c653a4 Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff/IRANSansWeb(FaNum)_UltraLight.woff differ diff --git a/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff2/IRANSansWeb(FaNum).woff2 b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff2/IRANSansWeb(FaNum).woff2 new file mode 100644 index 0000000..30a377d Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff2/IRANSansWeb(FaNum).woff2 differ diff --git a/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff2/IRANSansWeb(FaNum)_Black.woff2 b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff2/IRANSansWeb(FaNum)_Black.woff2 new file mode 100644 index 0000000..0b15441 Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff2/IRANSansWeb(FaNum)_Black.woff2 differ diff --git a/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff2/IRANSansWeb(FaNum)_Bold.woff2 b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff2/IRANSansWeb(FaNum)_Bold.woff2 new file mode 100644 index 0000000..f2353b2 Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff2/IRANSansWeb(FaNum)_Bold.woff2 differ diff --git a/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff2/IRANSansWeb(FaNum)_Light.woff2 b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff2/IRANSansWeb(FaNum)_Light.woff2 new file mode 100644 index 0000000..562d663 Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff2/IRANSansWeb(FaNum)_Light.woff2 differ diff --git a/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff2/IRANSansWeb(FaNum)_Medium.woff2 b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff2/IRANSansWeb(FaNum)_Medium.woff2 new file mode 100644 index 0000000..a69f4d0 Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff2/IRANSansWeb(FaNum)_Medium.woff2 differ diff --git a/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff2/IRANSansWeb(FaNum)_UltraLight.woff2 b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff2/IRANSansWeb(FaNum)_UltraLight.woff2 new file mode 100644 index 0000000..1114f71 Binary files /dev/null and b/src/assets/IRANSans/Farsi_numerals/webFonts/fonts/woff2/IRANSansWeb(FaNum)_UltraLight.woff2 differ diff --git a/src/assets/IRANSans/FontLicense.txt b/src/assets/IRANSans/FontLicense.txt new file mode 100644 index 0000000..221e084 --- /dev/null +++ b/src/assets/IRANSans/FontLicense.txt @@ -0,0 +1,18 @@ +IRAN Sans-serif fonts are considered a proprietary software. +To gain information about the laws regarding the use of these fonts, please visit www.fontiran.com + +This set of fonts are used in this project under the license: (.....) + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +In case you use this set of fonts in a software product, write the license code in the specified place and place this file next to the fonts. + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +فونت های ايران سن‌سریف يک نرم افزار مالکيتی محسوب می شود جهت آگاهی از قوانين استفاده از اين فونت‌ها لطفاً به وبسايت +www.fontiran.com +مراجعه نماييد +اين مجموعه فونت تحت اجازه نامه +(.....) +در اين پروژه استفاده می شود + +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +در صورت استفاده از این مجموعه فونت در یک محصول نرم افزاری‌ یا وب‌سایت کد ۵ رقمی لایسنس خود را در محل مشخص شده (.....) درج کنید و این فایل را در کنار فونت ها قرار دهید. diff --git a/src/assets/IRANSans/IRANSans.ttf b/src/assets/IRANSans/IRANSans.ttf new file mode 100644 index 0000000..2cf3495 Binary files /dev/null and b/src/assets/IRANSans/IRANSans.ttf differ diff --git a/src/assets/IRANSans/IRANSans5.jpg b/src/assets/IRANSans/IRANSans5.jpg new file mode 100644 index 0000000..6f7dd2e Binary files /dev/null and b/src/assets/IRANSans/IRANSans5.jpg differ diff --git a/src/assets/IRANSans/IRANSans5_5.html b/src/assets/IRANSans/IRANSans5_5.html new file mode 100644 index 0000000..c498eea --- /dev/null +++ b/src/assets/IRANSans/IRANSans5_5.html @@ -0,0 +1,81 @@ + + + + + IRANSans Family Type face: خانواده فونت ایران سن سریف + + + + + + + + +
+

+


+
+
+

اگر از خدمات فونت ایران رضایت دارید:

+
+
+
+
+ +
+
+

+
+ لطفاً: +
+ ۱) فایل‌های درون این بسته را به اشتراک نگذارید. +
+ ۲) همکاران خود را به خرید این محصول ترغیب کنید. +
+ ۳) برای محصولات خود اجازه‌نامه تهیه کنید. +
+ ۴) طبق راهنما، کد ۵ رقمی اجازه‌نامه را در محصول خود درج کنید و کاربران خود را از + کپی‌رایت این محصول آگاه کنید.
+

+ +

+ کدامیک از محصولات و شرکت‌ها با خرید اجازه‌نامه از حقوق ما حمایت کرده‌اند؟ +

+

+ کدام سایت‌ها و نرم افزارها بدون اجازه‌نامه از فونت ایران استفاده می‌کنند؟ +

+ +
+
+
+ +
+
+ + diff --git a/src/assets/IRANSans/IRANSans_Black.ttf b/src/assets/IRANSans/IRANSans_Black.ttf new file mode 100644 index 0000000..7765eb4 Binary files /dev/null and b/src/assets/IRANSans/IRANSans_Black.ttf differ diff --git a/src/assets/IRANSans/IRANSans_Bold.ttf b/src/assets/IRANSans/IRANSans_Bold.ttf new file mode 100644 index 0000000..053ffc7 Binary files /dev/null and b/src/assets/IRANSans/IRANSans_Bold.ttf differ diff --git a/src/assets/IRANSans/IRANSans_Light.ttf b/src/assets/IRANSans/IRANSans_Light.ttf new file mode 100644 index 0000000..2095056 Binary files /dev/null and b/src/assets/IRANSans/IRANSans_Light.ttf differ diff --git a/src/assets/IRANSans/IRANSans_Medium.ttf b/src/assets/IRANSans/IRANSans_Medium.ttf new file mode 100644 index 0000000..4b0cf29 Binary files /dev/null and b/src/assets/IRANSans/IRANSans_Medium.ttf differ diff --git a/src/assets/IRANSans/IRANSans_UltraLight.ttf b/src/assets/IRANSans/IRANSans_UltraLight.ttf new file mode 100644 index 0000000..30c6239 Binary files /dev/null and b/src/assets/IRANSans/IRANSans_UltraLight.ttf differ diff --git a/src/assets/IRANSans/MobileFonts/IRANSansMobile.ttf b/src/assets/IRANSans/MobileFonts/IRANSansMobile.ttf new file mode 100644 index 0000000..3c9b756 Binary files /dev/null and b/src/assets/IRANSans/MobileFonts/IRANSansMobile.ttf differ diff --git a/src/assets/IRANSans/MobileFonts/IRANSansMobile_Black.ttf b/src/assets/IRANSans/MobileFonts/IRANSansMobile_Black.ttf new file mode 100644 index 0000000..07f27f5 Binary files /dev/null and b/src/assets/IRANSans/MobileFonts/IRANSansMobile_Black.ttf differ diff --git a/src/assets/IRANSans/MobileFonts/IRANSansMobile_Bold.ttf b/src/assets/IRANSans/MobileFonts/IRANSansMobile_Bold.ttf new file mode 100644 index 0000000..0b16cde Binary files /dev/null and b/src/assets/IRANSans/MobileFonts/IRANSansMobile_Bold.ttf differ diff --git a/src/assets/IRANSans/MobileFonts/IRANSansMobile_Light.ttf b/src/assets/IRANSans/MobileFonts/IRANSansMobile_Light.ttf new file mode 100644 index 0000000..117586e Binary files /dev/null and b/src/assets/IRANSans/MobileFonts/IRANSansMobile_Light.ttf differ diff --git a/src/assets/IRANSans/MobileFonts/IRANSansMobile_Medium.ttf b/src/assets/IRANSans/MobileFonts/IRANSansMobile_Medium.ttf new file mode 100644 index 0000000..c63c148 Binary files /dev/null and b/src/assets/IRANSans/MobileFonts/IRANSansMobile_Medium.ttf differ diff --git a/src/assets/IRANSans/MobileFonts/IRANSansMobile_UltraLight.ttf b/src/assets/IRANSans/MobileFonts/IRANSansMobile_UltraLight.ttf new file mode 100644 index 0000000..ff2f06f Binary files /dev/null and b/src/assets/IRANSans/MobileFonts/IRANSansMobile_UltraLight.ttf differ diff --git a/src/assets/IRANSans/MobileFonts/MobileFonts.png b/src/assets/IRANSans/MobileFonts/MobileFonts.png new file mode 100644 index 0000000..2aedf87 Binary files /dev/null and b/src/assets/IRANSans/MobileFonts/MobileFonts.png differ diff --git a/src/assets/IRANSans/MonoSpaced_Numral/IRANSansMonoSpacedNum.ttf b/src/assets/IRANSans/MonoSpaced_Numral/IRANSansMonoSpacedNum.ttf new file mode 100644 index 0000000..26ac25f Binary files /dev/null and b/src/assets/IRANSans/MonoSpaced_Numral/IRANSansMonoSpacedNum.ttf differ diff --git a/src/assets/IRANSans/MonoSpaced_Numral/IRANSansMonoSpacedNum_Black.ttf b/src/assets/IRANSans/MonoSpaced_Numral/IRANSansMonoSpacedNum_Black.ttf new file mode 100644 index 0000000..c2c59ec Binary files /dev/null and b/src/assets/IRANSans/MonoSpaced_Numral/IRANSansMonoSpacedNum_Black.ttf differ diff --git a/src/assets/IRANSans/MonoSpaced_Numral/IRANSansMonoSpacedNum_Bold.ttf b/src/assets/IRANSans/MonoSpaced_Numral/IRANSansMonoSpacedNum_Bold.ttf new file mode 100644 index 0000000..186b4f4 Binary files /dev/null and b/src/assets/IRANSans/MonoSpaced_Numral/IRANSansMonoSpacedNum_Bold.ttf differ diff --git a/src/assets/IRANSans/MonoSpaced_Numral/IRANSansMonoSpacedNum_Light.ttf b/src/assets/IRANSans/MonoSpaced_Numral/IRANSansMonoSpacedNum_Light.ttf new file mode 100644 index 0000000..4d6da97 Binary files /dev/null and b/src/assets/IRANSans/MonoSpaced_Numral/IRANSansMonoSpacedNum_Light.ttf differ diff --git a/src/assets/IRANSans/MonoSpaced_Numral/IRANSansMonoSpacedNum_Medium.ttf b/src/assets/IRANSans/MonoSpaced_Numral/IRANSansMonoSpacedNum_Medium.ttf new file mode 100644 index 0000000..371d71d Binary files /dev/null and b/src/assets/IRANSans/MonoSpaced_Numral/IRANSansMonoSpacedNum_Medium.ttf differ diff --git a/src/assets/IRANSans/MonoSpaced_Numral/IRANSansMonoSpacedNum_UltraLight.ttf b/src/assets/IRANSans/MonoSpaced_Numral/IRANSansMonoSpacedNum_UltraLight.ttf new file mode 100644 index 0000000..0ce6793 Binary files /dev/null and b/src/assets/IRANSans/MonoSpaced_Numral/IRANSansMonoSpacedNum_UltraLight.ttf differ diff --git a/src/assets/IRANSans/MonoSpaced_Numral/MonoSpaced Numral.png b/src/assets/IRANSans/MonoSpaced_Numral/MonoSpaced Numral.png new file mode 100644 index 0000000..54dd906 Binary files /dev/null and b/src/assets/IRANSans/MonoSpaced_Numral/MonoSpaced Numral.png differ diff --git a/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/IRANSansFaNum_Black.ttf b/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/IRANSansFaNum_Black.ttf new file mode 100644 index 0000000..7b03e32 Binary files /dev/null and b/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/IRANSansFaNum_Black.ttf differ diff --git a/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/IRANSansOnlyNumeral.ttf b/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/IRANSansOnlyNumeral.ttf new file mode 100644 index 0000000..617bbe5 Binary files /dev/null and b/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/IRANSansOnlyNumeral.ttf differ diff --git a/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/IRANSansOnlyNumeral_Bold.ttf b/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/IRANSansOnlyNumeral_Bold.ttf new file mode 100644 index 0000000..48a5b42 Binary files /dev/null and b/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/IRANSansOnlyNumeral_Bold.ttf differ diff --git a/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/IRANSansOnlyNumeral_Light.ttf b/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/IRANSansOnlyNumeral_Light.ttf new file mode 100644 index 0000000..0573138 Binary files /dev/null and b/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/IRANSansOnlyNumeral_Light.ttf differ diff --git a/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/IRANSansOnlyNumeral_UltraLight.ttf b/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/IRANSansOnlyNumeral_UltraLight.ttf new file mode 100644 index 0000000..451ec6e Binary files /dev/null and b/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/IRANSansOnlyNumeral_UltraLight.ttf differ diff --git a/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/IRANSansOnlyNumral_Medium.ttf b/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/IRANSansOnlyNumral_Medium.ttf new file mode 100644 index 0000000..8534b9e Binary files /dev/null and b/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/IRANSansOnlyNumral_Medium.ttf differ diff --git a/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/woff/IRANSansOnlyNumeral.woff b/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/woff/IRANSansOnlyNumeral.woff new file mode 100644 index 0000000..39094a6 Binary files /dev/null and b/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/woff/IRANSansOnlyNumeral.woff differ diff --git a/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/woff/IRANSansOnlyNumeral_Black.woff b/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/woff/IRANSansOnlyNumeral_Black.woff new file mode 100644 index 0000000..a5b2d07 Binary files /dev/null and b/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/woff/IRANSansOnlyNumeral_Black.woff differ diff --git a/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/woff/IRANSansOnlyNumeral_Bold.woff b/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/woff/IRANSansOnlyNumeral_Bold.woff new file mode 100644 index 0000000..f9230c8 Binary files /dev/null and b/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/woff/IRANSansOnlyNumeral_Bold.woff differ diff --git a/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/woff/IRANSansOnlyNumeral_Light.woff b/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/woff/IRANSansOnlyNumeral_Light.woff new file mode 100644 index 0000000..46a4df4 Binary files /dev/null and b/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/woff/IRANSansOnlyNumeral_Light.woff differ diff --git a/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/woff/IRANSansOnlyNumeral_UltraLight.woff b/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/woff/IRANSansOnlyNumeral_UltraLight.woff new file mode 100644 index 0000000..212b585 Binary files /dev/null and b/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/woff/IRANSansOnlyNumeral_UltraLight.woff differ diff --git a/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/woff/IRANSansOnlyNumral_Medium.woff b/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/woff/IRANSansOnlyNumral_Medium.woff new file mode 100644 index 0000000..18ebbf8 Binary files /dev/null and b/src/assets/IRANSans/MonoSpaced_Numral/OnlyNumeral/woff/IRANSansOnlyNumral_Medium.woff differ diff --git a/src/assets/IRANSans/MonoSpaced_Numral/woff/IRANSansMonoSpacedNum.woff b/src/assets/IRANSans/MonoSpaced_Numral/woff/IRANSansMonoSpacedNum.woff new file mode 100644 index 0000000..d37250d Binary files /dev/null and b/src/assets/IRANSans/MonoSpaced_Numral/woff/IRANSansMonoSpacedNum.woff differ diff --git a/src/assets/IRANSans/MonoSpaced_Numral/woff/IRANSansMonoSpacedNum_Black.woff b/src/assets/IRANSans/MonoSpaced_Numral/woff/IRANSansMonoSpacedNum_Black.woff new file mode 100644 index 0000000..cd1d56b Binary files /dev/null and b/src/assets/IRANSans/MonoSpaced_Numral/woff/IRANSansMonoSpacedNum_Black.woff differ diff --git a/src/assets/IRANSans/MonoSpaced_Numral/woff/IRANSansMonoSpacedNum_Bold.woff b/src/assets/IRANSans/MonoSpaced_Numral/woff/IRANSansMonoSpacedNum_Bold.woff new file mode 100644 index 0000000..fe33d7c Binary files /dev/null and b/src/assets/IRANSans/MonoSpaced_Numral/woff/IRANSansMonoSpacedNum_Bold.woff differ diff --git a/src/assets/IRANSans/MonoSpaced_Numral/woff/IRANSansMonoSpacedNum_Light.woff b/src/assets/IRANSans/MonoSpaced_Numral/woff/IRANSansMonoSpacedNum_Light.woff new file mode 100644 index 0000000..2b88cf6 Binary files /dev/null and b/src/assets/IRANSans/MonoSpaced_Numral/woff/IRANSansMonoSpacedNum_Light.woff differ diff --git a/src/assets/IRANSans/MonoSpaced_Numral/woff/IRANSansMonoSpacedNum_Medium.woff b/src/assets/IRANSans/MonoSpaced_Numral/woff/IRANSansMonoSpacedNum_Medium.woff new file mode 100644 index 0000000..8d95490 Binary files /dev/null and b/src/assets/IRANSans/MonoSpaced_Numral/woff/IRANSansMonoSpacedNum_Medium.woff differ diff --git a/src/assets/IRANSans/MonoSpaced_Numral/woff/IRANSansMonoSpacedNum_UltraLight.woff b/src/assets/IRANSans/MonoSpaced_Numral/woff/IRANSansMonoSpacedNum_UltraLight.woff new file mode 100644 index 0000000..1dd4165 Binary files /dev/null and b/src/assets/IRANSans/MonoSpaced_Numral/woff/IRANSansMonoSpacedNum_UltraLight.woff differ diff --git a/src/assets/IRANSans/Non_English/MobileFonts/IRAN SansMobile(NoEn).ttf b/src/assets/IRANSans/Non_English/MobileFonts/IRAN SansMobile(NoEn).ttf new file mode 100644 index 0000000..4f72c0d Binary files /dev/null and b/src/assets/IRANSans/Non_English/MobileFonts/IRAN SansMobile(NoEn).ttf differ diff --git a/src/assets/IRANSans/Non_English/MobileFonts/IRANSansMobile(NoEn)_Black.ttf b/src/assets/IRANSans/Non_English/MobileFonts/IRANSansMobile(NoEn)_Black.ttf new file mode 100644 index 0000000..f21d2cb Binary files /dev/null and b/src/assets/IRANSans/Non_English/MobileFonts/IRANSansMobile(NoEn)_Black.ttf differ diff --git a/src/assets/IRANSans/Non_English/MobileFonts/IRANSansMobile(NoEn)_Bold.ttf b/src/assets/IRANSans/Non_English/MobileFonts/IRANSansMobile(NoEn)_Bold.ttf new file mode 100644 index 0000000..24cdde1 Binary files /dev/null and b/src/assets/IRANSans/Non_English/MobileFonts/IRANSansMobile(NoEn)_Bold.ttf differ diff --git a/src/assets/IRANSans/Non_English/MobileFonts/IRANSansMobile(NoEn)_Light.ttf b/src/assets/IRANSans/Non_English/MobileFonts/IRANSansMobile(NoEn)_Light.ttf new file mode 100644 index 0000000..8b2c18f Binary files /dev/null and b/src/assets/IRANSans/Non_English/MobileFonts/IRANSansMobile(NoEn)_Light.ttf differ diff --git a/src/assets/IRANSans/Non_English/MobileFonts/IRANSansMobile(NoEn)_Medium.ttf b/src/assets/IRANSans/Non_English/MobileFonts/IRANSansMobile(NoEn)_Medium.ttf new file mode 100644 index 0000000..38f51a7 Binary files /dev/null and b/src/assets/IRANSans/Non_English/MobileFonts/IRANSansMobile(NoEn)_Medium.ttf differ diff --git a/src/assets/IRANSans/Non_English/MobileFonts/IRANSansMobile(NoEn)_ultralight.ttf b/src/assets/IRANSans/Non_English/MobileFonts/IRANSansMobile(NoEn)_ultralight.ttf new file mode 100644 index 0000000..2d1e3c1 Binary files /dev/null and b/src/assets/IRANSans/Non_English/MobileFonts/IRANSansMobile(NoEn)_ultralight.ttf differ diff --git a/src/assets/IRANSans/Non_English/MobileFonts/MobileFonts.png b/src/assets/IRANSans/Non_English/MobileFonts/MobileFonts.png new file mode 100644 index 0000000..2aedf87 Binary files /dev/null and b/src/assets/IRANSans/Non_English/MobileFonts/MobileFonts.png differ diff --git a/src/assets/IRANSans/Non_English/Non_English.png b/src/assets/IRANSans/Non_English/Non_English.png new file mode 100644 index 0000000..c7c5cc5 Binary files /dev/null and b/src/assets/IRANSans/Non_English/Non_English.png differ diff --git a/src/assets/IRANSans/Non_English/WebFonts/IRANSans.html b/src/assets/IRANSans/Non_English/WebFonts/IRANSans.html new file mode 100644 index 0000000..89af37a --- /dev/null +++ b/src/assets/IRANSans/Non_English/WebFonts/IRANSans.html @@ -0,0 +1,281 @@ + + + + +IRANSans Family Type face: خانواده فونت ایران سن سریف + + + + + + + +
+ +
+
+

بِسْمِ الله الرَّحْمَنِ الرَّحِيمِ

+
+
د
+
+
+ ن وَالْقَلَمِ وَ مَا يَسْطُرُون +
+ نون؛ سوگند به قلم و آنچه می نويسند. +
+ Noon. I swear by the pen and what the angels write +
+
+
+
+ +
+ +
+

نکاتی درباره تایپوگرافی وب

+
+ +
خ
+
+

از زمان پیدایش نخستین وب سایت، متن ها یکی از اجزای مهم صفحات وب بودند. هر چند به مرور زمان با ورود تصاویر، صوت و فیلم کمی از بار مسئولیت متون کم شد اما هنوز جایگاه خود را از دست نداده اند و بخش مهمی از کار را به عهده دارند.

+

بسیاری از طراحان وب سایت به صورت تجربی بهترین ترکیب و ظاهر را برای نمایش متن ها انتخاب می کنند. اما اصولی وجود دارد که با رعایت آن ها، تاثیرپذیری و زیبایی سایت چند برابر خواهد شد.

+

در ادامه مطلب قصد داریم تعدادی از اصول مقدماتی تایپوگرافی را به اختصار مرور کنیم. هرچند بسیاری از دوستان با این نکات آشنا هستند؛ اما شاید مرور آن ها خالی از لطف نباشد.

+
+ + +
+ +
+
+

تاثیر اندازه فونت و سلسله مراتب تگ‌ها

+
+
پ
+
+

فونت های داخل سایت باید به گونه ای قرار گیرند که کاربر به راحتی بتواند آن ها را بخواند. نوع فونت، وزن و کوچک (یا بزرگ) بودن اندازه آن ممکن است تمایل کاربر برای بازگشت به وب سایت را کاهش دهد. قواعد و قوانین زیادی برای انتخاب بهترین فونت وجود دارد.

+

در زیر می توانید ۵ وزن مختلف خانواده فونت ایران سن سریف را در شرایط یکسان مشاهده کنید. لازم به ذکر است برای این صفحه از وزن نازک (Light) استفاده شده است.

+
+
+ + +
+
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Ultra Light)
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Light)
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Regular)
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Medium)
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Bold)
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Black)
+
+
+ +
+
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Ultra Light)
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Light)
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Regular)
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Medium)
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Bold)
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Black)
+
+
+ +
+
+

تگ‌های هدینگ

+
+
ی
+
+

در این بین، استفاده از تگ های هدینگ مناسب و رعایت سلسله مراتب آن ها، هم مفهوم نوشته را بهتر منتقل می کند و هم تاثیر قابل توجهی در نتایج موتورهای جستجو خواهد داشت. این نکته یکی از فاکتورهای مهم در بهینه سازی وب سایت برای موتورهای جستجو (Search Engine Optimization) است.

+

نمونه ای از خروجی تگ های هدینگ با سایز استاندارد مربوطه به فونت های فونت ایران را در زیر مشاهده می کنید.

+
+
+ +
+
+

(H1) نابرده رنج گنج میسر نمی شود. No gain without pain

+

(H2) نابرده رنج گنج میسر نمی شود. No gain without pain

+

(H3) نابرده رنج گنج میسر نمی شود. No gain without pain

+

(H4) نابرده رنج گنج میسر نمی شود. No gain without pain

+
(H5) نابرده رنج گنج میسر نمی شود. No gain without pain
+
(H6) نابرده رنج گنج میسر نمی شود. No gain without pain
+
+
+ +
+
+

(H1) نابرده رنج گنج میسر نمی شود. No gain without pain

+

(H2) نابرده رنج گنج میسر نمی شود. No gain without pain

+

(H3) نابرده رنج گنج میسر نمی شود. No gain without pain

+

(H4) نابرده رنج گنج میسر نمی شود. No gain without pain

+
(H5) نابرده رنج گنج میسر نمی شود. No gain without pain
+
(H6) نابرده رنج گنج میسر نمی شود. No gain without pain
+
+
+ +
+
+

سطر و ستون بندی

+
+
م
+
+

معمولاً هرگاه مقدار نوشته از یک سطر بیشتر شود ناگزیر به ستون بندی هستیم. و این کار ما را با چند متغییر مواجه خواهد کرد:

+

۱- عرض ستون‌های متنی که حاوی حداقل۷ کلمه باشد بهترین انتخاب است. اگر ستون کوتاه‌تر باشد چشم بیننده در اثر حرکت‌های زود به زود از پایان یک سطر به ابتدای سطر بعدی خسته خواهد شد. علاوه بر این لبه ستون‌هایی با عرض کم نیز همیشه دندانه ای و بی نظم خواهد بود. ستون‌هایی با عرض طولانی هم برای خواننده آزار دهنده است چرا که چشم در حرکت بازگشت از انتهای یک سطر به ابتدای سطر بعدی ممکن است دچار اشتباه شود. + +

۲- لدینگ یا همان فاصله سطر هم در ستون بندی اهمیت دارد. ستون‌های فشرده اگرچه به لحاظ گرافیکی منسجم و زیبا هستند اما عمل خواندن را مختل می کنند و در مقابل، فاصله سطر زیاد نیز باعث نازیبایی و خستگی چشم خواننده می‌شود. فاصله سطر همیشه می تواند با توجه به نوع فونت و عرض ستون‌ها تغییر کند. بدین ترتیب که فونت‌هایی با دندانه‌های بلند‌تر و ستون‌هایی با عرض بیشتر به لدینگ بیشتری نیاز دارند. +

۳- همترازی هم یکی از متغییرهای پر بحث در ستون بندی است. اما به طور کوتاه و خلاصه باید گفت که بهتر است در متن فارسی از همترازی یا همان Justification استفاده نکنید. این عمل اگرچه لبه پاراگراف شما را مرتب خواهد کرد اما تنظیمات فاصله حروف را تغییر خواهد داد و در نتیجه باعث کاهش خوانایی خواهد شد.

+
+ +
+
(IRANSans Ultra Light)
+
ایران سن سریف IRANSans سبکی ساده و ضخامت یکسان از قلم ایران است که با وجود حفظ ساختار قلم‌های رایج ایرانی حال و هوای مدرن و امروزی دارد. سادگی شکل‌ حروف و استفاده از حداقل شکستگی باعث شده است این تایپ فیس علاوه بر خوانا بودن زیبا و چشم نواز نیز باشد. این فونت با سبک‌های طراحی کمینه‌گرا Minimal سازگاری خوبی دارد و همنشین مناسبی برای فونت‌های سن‌سریف لاتین است. خانواده فونت ایران سن‌سریف در سال ۱۳۹۴ پرطرفدارترین فونت فارسی بوده است.
+ +
+Roboto has a dual nature. It has a mechanical skeleton and the forms are largely geometric. At the same time, the font features friendly and open curves. While some grotesks distort their letterforms to force a rigid rhythm, Roboto doesn’t compromise, allowing letters to be settled into their natural width. This makes for a more natural reading rhythm more commonly found in humanist and serif types. +
+ +
+ +
+
(IRANSans Light)
+
ایران سن سریف IRANSans سبکی ساده و ضخامت یکسان از قلم ایران است که با وجود حفظ ساختار قلم‌های رایج ایرانی حال و هوای مدرن و امروزی دارد. سادگی شکل‌ حروف و استفاده از حداقل شکستگی باعث شده است این تایپ فیس علاوه بر خوانا بودن زیبا و چشم نواز نیز باشد. این فونت با سبک‌های طراحی کمینه‌گرا Minimal سازگاری خوبی دارد و همنشین مناسبی برای فونت‌های سن‌سریف لاتین است. خانواده فونت ایران سن‌سریف در سال ۱۳۹۴ پرطرفدارترین فونت فارسی بوده است.
+ +
+Roboto has a dual nature. It has a mechanical skeleton and the forms are largely geometric. At the same time, the font features friendly and open curves. While some grotesks distort their letterforms to force a rigid rhythm, Roboto doesn’t compromise, allowing letters to be settled into their natural width. This makes for a more natural reading rhythm more commonly found in humanist and serif types. +
+ +
+ +
+
(IRANSans Regular)
+
ایران سن سریف IRANSans سبکی ساده و ضخامت یکسان از قلم ایران است که با وجود حفظ ساختار قلم‌های رایج ایرانی حال و هوای مدرن و امروزی دارد. سادگی شکل‌ حروف و استفاده از حداقل شکستگی باعث شده است این تایپ فیس علاوه بر خوانا بودن زیبا و چشم نواز نیز باشد. این فونت با سبک‌های طراحی کمینه‌گرا Minimal سازگاری خوبی دارد و همنشین مناسبی برای فونت‌های سن‌سریف لاتین است. خانواده فونت ایران سن‌سریف در سال ۱۳۹۴ پرطرفدارترین فونت فارسی بوده است.
+ +
+Roboto has a dual nature. It has a mechanical skeleton and the forms are largely geometric. At the same time, the font features friendly and open curves. While some grotesks distort their letterforms to force a rigid rhythm, Roboto doesn’t compromise, allowing letters to be settled into their natural width. This makes for a more natural reading rhythm more commonly found in humanist and serif types. +
+ +
+ +
+
(IRANSans Medium)
+
ایران سن سریف IRANSans سبکی ساده و ضخامت یکسان از قلم ایران است که با وجود حفظ ساختار قلم‌های رایج ایرانی حال و هوای مدرن و امروزی دارد. سادگی شکل‌ حروف و استفاده از حداقل شکستگی باعث شده است این تایپ فیس علاوه بر خوانا بودن زیبا و چشم نواز نیز باشد. این فونت با سبک‌های طراحی کمینه‌گرا Minimal سازگاری خوبی دارد و همنشین مناسبی برای فونت‌های سن‌سریف لاتین است. خانواده فونت ایران سن‌سریف در سال ۱۳۹۴ پرطرفدارترین فونت فارسی بوده است.
+ +
+Roboto has a dual nature. It has a mechanical skeleton and the forms are largely geometric. At the same time, the font features friendly and open curves. While some grotesks distort their letterforms to force a rigid rhythm, Roboto doesn’t compromise, allowing letters to be settled into their natural width. This makes for a more natural reading rhythm more commonly found in humanist and serif types. +
+ +
+
+
(IRANSans Bold)
+
ایران سن سریف IRANSans سبکی ساده و ضخامت یکسان از قلم ایران است که با وجود حفظ ساختار قلم‌های رایج ایرانی حال و هوای مدرن و امروزی دارد. سادگی شکل‌ حروف و استفاده از حداقل شکستگی باعث شده است این تایپ فیس علاوه بر خوانا بودن زیبا و چشم نواز نیز باشد. این فونت با سبک‌های طراحی کمینه‌گرا Minimal سازگاری خوبی دارد و همنشین مناسبی برای فونت‌های سن‌سریف لاتین است. خانواده فونت ایران سن‌سریف در سال ۱۳۹۴ پرطرفدارترین فونت فارسی بوده است.
+ +
+Roboto has a dual nature. It has a mechanical skeleton and the forms are largely geometric. At the same time, the font features friendly and open curves. While some grotesks distort their letterforms to force a rigid rhythm, Roboto doesn’t compromise, allowing letters to be settled into their natural width. This makes for a more natural reading rhythm more commonly found in humanist and serif types. +
+ +
+ +
+
(IRANSans Black)
+
ایران سن سریف IRANSans سبکی ساده و ضخامت یکسان از قلم ایران است که با وجود حفظ ساختار قلم‌های رایج ایرانی حال و هوای مدرن و امروزی دارد. سادگی شکل‌ حروف و استفاده از حداقل شکستگی باعث شده است این تایپ فیس علاوه بر خوانا بودن زیبا و چشم نواز نیز باشد. این فونت با سبک‌های طراحی کمینه‌گرا Minimal سازگاری خوبی دارد و همنشین مناسبی برای فونت‌های سن‌سریف لاتین است. خانواده فونت ایران سن‌سریف در سال ۱۳۹۴ پرطرفدارترین فونت فارسی بوده است.
+ +
+Roboto has a dual nature. It has a mechanical skeleton and the forms are largely geometric. At the same time, the font features friendly and open curves. While some grotesks distort their letterforms to force a rigid rhythm, Roboto doesn’t compromise, allowing letters to be settled into their natural width. This makes for a more natural reading rhythm more commonly found in humanist and serif types. +
+ +
+ +
+
+

اعداد و علائم در فونت فارسی

+
+
ظ
+
+

اعداد فارسی: ۱۲۳۴۵۶۷۸۹۰
+ اعداد عربی: ۱۲۳٤٥٦۷۸۹۰
+ اعداد انگلیسی: 1234567890

+

برای تایپ اعداد فارسی در محیط وب از کیبورد استاندارد فارسی استفاده کنید. در ویندوز ۸ و یا بالاتر این کیبورد، با نام Persian(Standard)Keyboard در لیست کیبوردهای ویندوز وجود دارد. همچنین می توانید از این آدرس آن را دانلود و نصب کنید.

+ +

با استفاده از کیبورد استاندارد می‌توانید ممیز فارسی را تایپ کنید.
+ میانبر این علامت کلیدهای Shift+3 است. به این شکل: ۳٫۱۴
+ ممیز فارسی با علامت اسلش تفاوت دارد :۳/۱۴ +

+

با استفاده از کیبورد استاندارد می‌توانید جداکننده هزارگان فارسی را تایپ کنید.
+ میانبر این علامت کلیدهای Shift+2 است. به این شکل: ۹٬۲۱۰٬۰۰۰
+ این علامت با جدا کننده هزارگان انگلیسی تفاوت دارد : ۹,۲۱۰,۰۰۰ +

+
+
+ +
+
+

نسبت‌های طلایی

+
+
+
+ ۳٫۷۷۷ ÷ ۱٫۶۱۸ = ۲٫۳۳۵ +
+ ۶٫۱۱۲ ÷ ۱٫۶۱۸ = ۳٫۷۷۷ +
+ ۹٫۸۸۹ ÷ ۱٫۶۱۸ = ۶٫۱۱۲ +
+ ۱۶ ÷ ۱٫۶۱۸ = ۹٫۸۸۹ +
+....................................... +
+ ۱۶ × ۱٫۶۱۸ = ۲۵٫۸۸۸ +
+ ۲۵٫۸۸۸ × ۱٫۶۱۸ = ۴۱٫۸۸۷ +
+ ۴۱٫۸۸۷ × ۱٫۶۱۸ = ۶۷٫۷۷۳ +
+ ۶۷٫۷۷۳ × ۱٫۶۱۸ = ۱۰۹٫۶۵۶ +
+
+
+

اهمیت اندازه فونت در خوانایی و زیبا شدن صفحه وب سایت بر کسی پوشیده نیست. در کنار این بحث، موارد دیگری مانند ارتفاع خطوط، فاصله ها، ابعاد قسمت های مختلف و ... نیز در بحث تایپوگرافی اهمیت زیادی دارند.

+

برای محاسبه این اعداد می توانیم از سری اعداد متناسب (Modular Scale) استفاده کنیم. در حقیقت از تعدادی عدد پشت سر هم که بر اساس مضرب خاصی تشکیل شده اند برای تنظیمات ارتفاع خط، فاصله ها، ابعاد و ... استفاده می کنیم. نسبت (عدد) طلایی همان مضرب اعداد است.

+

به عنوان مثال می خواهیم از سایز 16px فونت ایران سن سریف به عنوان فونت و سایز اصلی متن صفحات استفاده کنیم. عدد فی (phi) یونانی که معادل ۱٫۶۱۸۰۳۳۹۸۸۷ (به اختصار ۱٫۶۱۸) است را به عنوان نسبت طلایی در نظر می گیریم. بنابراین سری اعدادی به شکل روبرو خواهیم داشت:

+ +

+ به کمک این اعداد و استفاده از آن ها در صفحات وب سایت خود می توانیم خوانایی و زیبایی آن را افزایش دهیم. علاوه بر آن، اگر از واحدهای نسبی مانند em استفاده شود، امکانات بیشتری در اختیار طراح و بازدیدکننده خواهد بود. البته سری اعداد بر مبنای نسبت طلایی فقط در تایپوگرافی وب سایت کاربرد ندارد. + این اعداد می تواند ادامه داشته باشد (۱٬۲۱۵٫۹۸۱ ، ۱٬۹۶۷٫۴۵۷ ، ۳٬۱۸۳٫۳۴۵ و ...). +

+ +
+
+ +
+

خوانایی لینک‌ها

+
غ
+
+

شاید بتوانیم از لینک ها (hyperlinks) به عنوان مهم ترین بخش وب سایت ها در ارتباط با سئو (SEO) و نیز یکی از پرکاربردترین اجزای وب سایت نام ببریم. بنابراین بازدیدکننده باید بتواند به راحتی آن ها را از سایر محتوای صفحه تشخیص داده و متن لینک شده را به سرعت و بدون مزاحمت مشاهده کند.

+

به صورت پیش فرض، متن هایی که داخل یک هایپرلینک قرار می گیرند، زیر خط دار یا underline می شوند (مانند این لینک یا پیوند به صفحه اصلی فونت ایران). در بسیاری از فونت های فارسی، این خط روی متن و نقطه ها قرار می گیرد (مانند این لینک یا پیوند به صفحه اصلی فونت ایران با فونت تاهوما).

+

در صورت بروز این مشکل، یا باید خط زیرین تمام تگ های «a» غیر فعال شود و یا با ترفندهایی به شکل دیگر ایجاد شود (مانند قرار دادن border-bottom برای تگ های «a»).

+

همچنین پیشنهاد می کنیم از قراردادن افکت ها و transition های آزاردهنده روی لینک ها پرهیز کرده و برای راحتی کاربر از padding و color با کانتراست مناسب نسبت به زمینه استفاده کنید.

+
+
+ + + +
+
+
+در این فایل سعی کردیم همراه با یک مطلب آموزشی کوتاه، نحوه استفاده از خانواده فونت ایران سن سریف و پیش نمایشی از قسمت های مختلف آن را مرور کنیم. +
+برای مشاهده راهنمای نحوه قراردادن فونت ها در وب سایت خود، به این آدرس مراجعه کنید. +
+
+
+
ء
+
+ +
+ +
+ + \ No newline at end of file diff --git a/src/assets/IRANSans/Non_English/WebFonts/WebFonts.png b/src/assets/IRANSans/Non_English/WebFonts/WebFonts.png new file mode 100644 index 0000000..82d3e21 Binary files /dev/null and b/src/assets/IRANSans/Non_English/WebFonts/WebFonts.png differ diff --git a/src/assets/IRANSans/Non_English/WebFonts/css/fontiran.css b/src/assets/IRANSans/Non_English/WebFonts/css/fontiran.css new file mode 100644 index 0000000..93be22c --- /dev/null +++ b/src/assets/IRANSans/Non_English/WebFonts/css/fontiran.css @@ -0,0 +1,84 @@ +/** +* +* Name: IRAN Sans-Serif Font +* Version: 5.0 +* Author: Moslem Ebrahimi (moslemebrahimi.com) +* Created on: Dec 25, 2012 +* Updated on: Sep 01, 2017 +* Website: http://fontiran.com +* Copyright: Commercial/Proprietary Software +-------------------------------------------------------------------------------------- +فونت های ایران سن سریف یک نرم افزار مالکیتی محسوب می شود. جهت آگاهی از قوانین استفاده از این فونت ها لطفا به وب سایت (فونت ایران دات کام) مراجعه نمایید +-------------------------------------------------------------------------------------- +IRAN Sans-serif fonts are considered a proprietary software. To gain information about the laws regarding the use of these fonts, please visit www.fontiran.com +-------------------------------------------------------------------------------------- +This set of fonts are used in this project under the license: (.....) +-------------------------------------------------------------------------------------- +* +**/ +@font-face { + font-family: IRANSans; + font-style: normal; + font-weight: 900; + src: url('../fonts/eot/IRANSansWeb(NoEn)_Black.eot'); + src: url('../fonts/eot/IRANSansWeb(NoEn)_Black.eot?#iefix') format('embedded-opentype'), + /* IE6-8 */ url('../fonts/woff2/IRANSansWeb(NoEn)_Black.woff2') format('woff2'), + /* FF39+,Chrome36+, Opera24+*/ url('../fonts/woff/IRANSansWeb(NoEn)_Black.woff') format('woff'), + /* FF3.6+, IE9, Chrome6+, Saf5.1+*/ url('../fonts/ttf/IRANSansWeb(NoEn)_Black.ttf') + format('truetype'); +} +@font-face { + font-family: IRANSans; + font-style: normal; + font-weight: bold; + src: url('../fonts/eot/IRANSansWeb(NoEn)_Bold.eot'); + src: url('../fonts/eot/IRANSansWeb(NoEn)_Bold.eot?#iefix') format('embedded-opentype'), + /* IE6-8 */ url('../fonts/woff2/IRANSansWeb(NoEn)_Bold.woff2') format('woff2'), + /* FF39+,Chrome36+, Opera24+*/ url('../fonts/woff/IRANSansWeb(NoEn)_Bold.woff') format('woff'), + /* FF3.6+, IE9, Chrome6+, Saf5.1+*/ url('../fonts/ttf/IRANSansWeb(NoEn)_Bold.ttf') + format('truetype'); +} +@font-face { + font-family: IRANSans; + font-style: normal; + font-weight: 500; + src: url('../fonts/eot/IRANSansWeb(NoEn)_Medium.eot'); + src: url('../fonts/eot/IRANSansWeb(NoEn)_Medium.eot?#iefix') format('embedded-opentype'), + /* IE6-8 */ url('../fonts/woff2/IRANSansWeb(NoEn)_Medium.woff2') format('woff2'), + /* FF39+,Chrome36+, Opera24+*/ url('../fonts/woff/IRANSansWeb(NoEn)_Medium.woff') format('woff'), + /* FF3.6+, IE9, Chrome6+, Saf5.1+*/ url('../fonts/ttf/IRANSansWeb(NoEn)_Medium.ttf') + format('truetype'); +} +@font-face { + font-family: IRANSans; + font-style: normal; + font-weight: 300; + src: url('../fonts/eot/IRANSansWeb(NoEn)_Light.eot'); + src: url('../fonts/eot/IRANSansWeb(NoEn)_Light.eot?#iefix') format('embedded-opentype'), + /* IE6-8 */ url('../fonts/woff2/IRANSansWeb(NoEn)_Light.woff2') format('woff2'), + /* FF39+,Chrome36+, Opera24+*/ url('../fonts/woff/IRANSansWeb(NoEn)_Light.woff') format('woff'), + /* FF3.6+, IE9, Chrome6+, Saf5.1+*/ url('../fonts/ttf/IRANSansWeb(NoEn)_Light.ttf') + format('truetype'); +} +@font-face { + font-family: IRANSans; + font-style: normal; + font-weight: 200; + src: url('../fonts/eot/IRANSansWeb(NoEn)_UltraLight.eot'); + src: url('../fonts/eot/IRANSansWeb(NoEn)_UltraLight.eot?#iefix') format('embedded-opentype'), + /* IE6-8 */ url('../fonts/woff2/IRANSansWeb(NoEn)_UltraLight.woff2') format('woff2'), + /* FF39+,Chrome36+, Opera24+*/ url('../fonts/woff/IRANSansWeb(NoEn)_UltraLight.woff') + format('woff'), + /* FF3.6+, IE9, Chrome6+, Saf5.1+*/ url('../fonts/ttf/IRANSansWeb(NoEn)_UltraLight.ttf') + format('truetype'); +} +@font-face { + font-family: IRANSans; + font-style: normal; + font-weight: normal; + src: url('../fonts/eot/IRANSansWeb(NoEn).eot'); + src: url('../fonts/eot/IRANSansWeb(NoEn).eot?#iefix') format('embedded-opentype'), + /* IE6-8 */ url('../fonts/woff2/IRANSansWeb(NoEn).woff2') format('woff2'), + /* FF39+,Chrome36+, Opera24+*/ url('../fonts/woff/IRANSansWeb(NoEn).woff') format('woff'), + /* FF3.6+, IE9, Chrome6+, Saf5.1+*/ url('../fonts/ttf/IRANSansWeb(NoEn).ttf') format('truetype'); +} diff --git a/src/assets/IRANSans/Non_English/WebFonts/css/style.css b/src/assets/IRANSans/Non_English/WebFonts/css/style.css new file mode 100644 index 0000000..c163904 --- /dev/null +++ b/src/assets/IRANSans/Non_English/WebFonts/css/style.css @@ -0,0 +1,191 @@ +@import url(fontiran.css); /* لینک فایلی که وظیفه بارگذاری فونت ها را برعهده دارد */ +body { + font-family: IRANSans, Roboto, Arial !important; + font-weight: 300; + direction: rtl; + background-color: #e2e2e2; + margin: 0; +} +h1, +h2, +h3, +h4, +h5, +h6, +input, +textarea { + font-family: IRANSans, Roboto, Arial !important; +} +h1 { + font-weight: bold; +} +.wrapper { + max-width: 900px; + margin: 0 auto; +} +.ltr { + direction: ltr; +} +.text-right { + text-align: right; +} +.text-center { + text-align: center; +} +.text-left { + text-align: left; +} +.text-small { + font-size: 0.8em; +} +.text-xsmall { + font-size: 0.6em; +} +.text-large { + font-size: 1.2em; +} +.text-xlarge { + font-size: 1.4em; +} +.text-underline { + text-decoration: underline; +} +.text-ultralight { + font-weight: 200; +} +.text-light { + font-weight: 300; +} +.text-regular { + font-weight: normal; +} +.text-medium { + font-weight: 500; +} +.text-bold { + font-weight: bold; +} +.text-black { + font-weight: 900; +} +blockquote { + font-weight: 500; + padding: 10px; + border: 1px dashed #666666; +} + +.mainbox { + width: 100%; + background-color: #efefef; + display: table; + margin-bottom: 30px; + border-right: 8px solid #ffff33; +} + +.mainboxnegativ { + width: 100%; + background-color: #000000; + display: table; + margin-bottom: 30px; + border-right: 8px solid #ffff33; + color: #f9f9f9; +} + +.mainbox2 { + font-size: 1em; + width: 90%; + padding-right: 20px; + padding-top: 10px; + padding-bottom: 10px; +} + +.mainbox3 { + width: 100%; + background-color: #b8b8b8; + display: table; + margin-bottom: 30px; + border-right: 8px solid #bd70ff; +} + +.mainbox2negativ { + font-size: 1em; + color: #f9f9f9; + background-color: #000000; + padding-right: 20px; +} + +.farsiparagraph { + font-size: 1em; + width: 47%; + float: right; + padding-right: 20px; + padding-top: 10px; + padding-bottom: 10px; +} +.englishparagraph { + font-size: 1em; + width: 47%; + float: left; + direction: ltr; + padding-left: 20px; + padding-top: 10px; + padding-bottom: 10px; +} +.rightbox { + width: 60%; + padding-right: 20px; + padding-left: 5px; + float: right; + margin-left: 10px; + margin-bottom: 0px; + min-width: 0px; + background-color: #f7f7f7; +} + +.titelbox { + width: 60%; + padding-right: 25px; + padding-left: 0px; + float: right; + margin-left: 10px; + margin-bottom: 0px; + min-width: 0px; + background-color: #f2f2f2; + color: #4b4b4b; +} + +.lefttbox { + padding-right: 20px; + padding-left: 4px; + float: right; + margin-bottom: 10px; + min-width: 0px; +} + +.alphabet { + width: 35%; + float: left; + font-size: 21em; + text-align: center; + font-weight: 500; + color: #999999; +} + +.alphabet2 { + width: 35%; + float: left; + direction: ltr; + font-size: 1.6em; + text-align: left; + font-weight: 500; + color: #333333; + margin-top: 100px; +} +.footer { + font-weight: 300; + font-size: 0.7em; + text-align: center; + direction: ltr; + margin-bottom: 0px; + padding-bottom: 0px; +} diff --git a/src/assets/IRANSans/Non_English/WebFonts/fonts/eot/IRANSansWeb(NoEn).eot b/src/assets/IRANSans/Non_English/WebFonts/fonts/eot/IRANSansWeb(NoEn).eot new file mode 100644 index 0000000..7d03b36 Binary files /dev/null and b/src/assets/IRANSans/Non_English/WebFonts/fonts/eot/IRANSansWeb(NoEn).eot differ diff --git a/src/assets/IRANSans/Non_English/WebFonts/fonts/eot/IRANSansWeb(NoEn)_Black.eot b/src/assets/IRANSans/Non_English/WebFonts/fonts/eot/IRANSansWeb(NoEn)_Black.eot new file mode 100644 index 0000000..2cfbaaf Binary files /dev/null and b/src/assets/IRANSans/Non_English/WebFonts/fonts/eot/IRANSansWeb(NoEn)_Black.eot differ diff --git a/src/assets/IRANSans/Non_English/WebFonts/fonts/eot/IRANSansWeb(NoEn)_Bold.eot b/src/assets/IRANSans/Non_English/WebFonts/fonts/eot/IRANSansWeb(NoEn)_Bold.eot new file mode 100644 index 0000000..8bbe91f Binary files /dev/null and b/src/assets/IRANSans/Non_English/WebFonts/fonts/eot/IRANSansWeb(NoEn)_Bold.eot differ diff --git a/src/assets/IRANSans/Non_English/WebFonts/fonts/eot/IRANSansWeb(NoEn)_Light.eot b/src/assets/IRANSans/Non_English/WebFonts/fonts/eot/IRANSansWeb(NoEn)_Light.eot new file mode 100644 index 0000000..579e559 Binary files /dev/null and b/src/assets/IRANSans/Non_English/WebFonts/fonts/eot/IRANSansWeb(NoEn)_Light.eot differ diff --git a/src/assets/IRANSans/Non_English/WebFonts/fonts/eot/IRANSansWeb(NoEn)_Medium.eot b/src/assets/IRANSans/Non_English/WebFonts/fonts/eot/IRANSansWeb(NoEn)_Medium.eot new file mode 100644 index 0000000..760bc63 Binary files /dev/null and b/src/assets/IRANSans/Non_English/WebFonts/fonts/eot/IRANSansWeb(NoEn)_Medium.eot differ diff --git a/src/assets/IRANSans/Non_English/WebFonts/fonts/eot/IRANSansWeb(NoEn)_UltraLight.eot b/src/assets/IRANSans/Non_English/WebFonts/fonts/eot/IRANSansWeb(NoEn)_UltraLight.eot new file mode 100644 index 0000000..16d3d62 Binary files /dev/null and b/src/assets/IRANSans/Non_English/WebFonts/fonts/eot/IRANSansWeb(NoEn)_UltraLight.eot differ diff --git a/src/assets/IRANSans/Non_English/WebFonts/fonts/ttf/IRANSansWeb(NoEn).ttf b/src/assets/IRANSans/Non_English/WebFonts/fonts/ttf/IRANSansWeb(NoEn).ttf new file mode 100644 index 0000000..c25c4fb Binary files /dev/null and b/src/assets/IRANSans/Non_English/WebFonts/fonts/ttf/IRANSansWeb(NoEn).ttf differ diff --git a/src/assets/IRANSans/Non_English/WebFonts/fonts/ttf/IRANSansWeb(NoEn)_Black.ttf b/src/assets/IRANSans/Non_English/WebFonts/fonts/ttf/IRANSansWeb(NoEn)_Black.ttf new file mode 100644 index 0000000..0aab768 Binary files /dev/null and b/src/assets/IRANSans/Non_English/WebFonts/fonts/ttf/IRANSansWeb(NoEn)_Black.ttf differ diff --git a/src/assets/IRANSans/Non_English/WebFonts/fonts/ttf/IRANSansWeb(NoEn)_Bold.ttf b/src/assets/IRANSans/Non_English/WebFonts/fonts/ttf/IRANSansWeb(NoEn)_Bold.ttf new file mode 100644 index 0000000..860e626 Binary files /dev/null and b/src/assets/IRANSans/Non_English/WebFonts/fonts/ttf/IRANSansWeb(NoEn)_Bold.ttf differ diff --git a/src/assets/IRANSans/Non_English/WebFonts/fonts/ttf/IRANSansWeb(NoEn)_Light.ttf b/src/assets/IRANSans/Non_English/WebFonts/fonts/ttf/IRANSansWeb(NoEn)_Light.ttf new file mode 100644 index 0000000..3063bdc Binary files /dev/null and b/src/assets/IRANSans/Non_English/WebFonts/fonts/ttf/IRANSansWeb(NoEn)_Light.ttf differ diff --git a/src/assets/IRANSans/Non_English/WebFonts/fonts/ttf/IRANSansWeb(NoEn)_Medium.ttf b/src/assets/IRANSans/Non_English/WebFonts/fonts/ttf/IRANSansWeb(NoEn)_Medium.ttf new file mode 100644 index 0000000..e7b70d6 Binary files /dev/null and b/src/assets/IRANSans/Non_English/WebFonts/fonts/ttf/IRANSansWeb(NoEn)_Medium.ttf differ diff --git a/src/assets/IRANSans/Non_English/WebFonts/fonts/ttf/IRANSansWeb(NoEn)_UltraLight.ttf b/src/assets/IRANSans/Non_English/WebFonts/fonts/ttf/IRANSansWeb(NoEn)_UltraLight.ttf new file mode 100644 index 0000000..21a3348 Binary files /dev/null and b/src/assets/IRANSans/Non_English/WebFonts/fonts/ttf/IRANSansWeb(NoEn)_UltraLight.ttf differ diff --git a/src/assets/IRANSans/Non_English/WebFonts/fonts/woff/IRANSansWeb(NoEn).woff b/src/assets/IRANSans/Non_English/WebFonts/fonts/woff/IRANSansWeb(NoEn).woff new file mode 100644 index 0000000..41282b3 Binary files /dev/null and b/src/assets/IRANSans/Non_English/WebFonts/fonts/woff/IRANSansWeb(NoEn).woff differ diff --git a/src/assets/IRANSans/Non_English/WebFonts/fonts/woff/IRANSansWeb(NoEn)_Black.woff b/src/assets/IRANSans/Non_English/WebFonts/fonts/woff/IRANSansWeb(NoEn)_Black.woff new file mode 100644 index 0000000..5aff5f5 Binary files /dev/null and b/src/assets/IRANSans/Non_English/WebFonts/fonts/woff/IRANSansWeb(NoEn)_Black.woff differ diff --git a/src/assets/IRANSans/Non_English/WebFonts/fonts/woff/IRANSansWeb(NoEn)_Bold.woff b/src/assets/IRANSans/Non_English/WebFonts/fonts/woff/IRANSansWeb(NoEn)_Bold.woff new file mode 100644 index 0000000..95fb9a1 Binary files /dev/null and b/src/assets/IRANSans/Non_English/WebFonts/fonts/woff/IRANSansWeb(NoEn)_Bold.woff differ diff --git a/src/assets/IRANSans/Non_English/WebFonts/fonts/woff/IRANSansWeb(NoEn)_Light.woff b/src/assets/IRANSans/Non_English/WebFonts/fonts/woff/IRANSansWeb(NoEn)_Light.woff new file mode 100644 index 0000000..e9d1538 Binary files /dev/null and b/src/assets/IRANSans/Non_English/WebFonts/fonts/woff/IRANSansWeb(NoEn)_Light.woff differ diff --git a/src/assets/IRANSans/Non_English/WebFonts/fonts/woff/IRANSansWeb(NoEn)_Medium.woff b/src/assets/IRANSans/Non_English/WebFonts/fonts/woff/IRANSansWeb(NoEn)_Medium.woff new file mode 100644 index 0000000..55e0f05 Binary files /dev/null and b/src/assets/IRANSans/Non_English/WebFonts/fonts/woff/IRANSansWeb(NoEn)_Medium.woff differ diff --git a/src/assets/IRANSans/Non_English/WebFonts/fonts/woff/IRANSansWeb(NoEn)_UltraLight.woff b/src/assets/IRANSans/Non_English/WebFonts/fonts/woff/IRANSansWeb(NoEn)_UltraLight.woff new file mode 100644 index 0000000..4c83a76 Binary files /dev/null and b/src/assets/IRANSans/Non_English/WebFonts/fonts/woff/IRANSansWeb(NoEn)_UltraLight.woff differ diff --git a/src/assets/IRANSans/Non_English/WebFonts/fonts/woff2/IRANSansWeb(NoEn).woff2 b/src/assets/IRANSans/Non_English/WebFonts/fonts/woff2/IRANSansWeb(NoEn).woff2 new file mode 100644 index 0000000..a868bef Binary files /dev/null and b/src/assets/IRANSans/Non_English/WebFonts/fonts/woff2/IRANSansWeb(NoEn).woff2 differ diff --git a/src/assets/IRANSans/Non_English/WebFonts/fonts/woff2/IRANSansWeb(NoEn)_Black.woff2 b/src/assets/IRANSans/Non_English/WebFonts/fonts/woff2/IRANSansWeb(NoEn)_Black.woff2 new file mode 100644 index 0000000..f955c47 Binary files /dev/null and b/src/assets/IRANSans/Non_English/WebFonts/fonts/woff2/IRANSansWeb(NoEn)_Black.woff2 differ diff --git a/src/assets/IRANSans/Non_English/WebFonts/fonts/woff2/IRANSansWeb(NoEn)_Bold.woff2 b/src/assets/IRANSans/Non_English/WebFonts/fonts/woff2/IRANSansWeb(NoEn)_Bold.woff2 new file mode 100644 index 0000000..b3d3125 Binary files /dev/null and b/src/assets/IRANSans/Non_English/WebFonts/fonts/woff2/IRANSansWeb(NoEn)_Bold.woff2 differ diff --git a/src/assets/IRANSans/Non_English/WebFonts/fonts/woff2/IRANSansWeb(NoEn)_Light.woff2 b/src/assets/IRANSans/Non_English/WebFonts/fonts/woff2/IRANSansWeb(NoEn)_Light.woff2 new file mode 100644 index 0000000..3efe9b0 Binary files /dev/null and b/src/assets/IRANSans/Non_English/WebFonts/fonts/woff2/IRANSansWeb(NoEn)_Light.woff2 differ diff --git a/src/assets/IRANSans/Non_English/WebFonts/fonts/woff2/IRANSansWeb(NoEn)_Medium.woff2 b/src/assets/IRANSans/Non_English/WebFonts/fonts/woff2/IRANSansWeb(NoEn)_Medium.woff2 new file mode 100644 index 0000000..f103e83 Binary files /dev/null and b/src/assets/IRANSans/Non_English/WebFonts/fonts/woff2/IRANSansWeb(NoEn)_Medium.woff2 differ diff --git a/src/assets/IRANSans/Non_English/WebFonts/fonts/woff2/IRANSansWeb(NoEn)_UltraLight.woff2 b/src/assets/IRANSans/Non_English/WebFonts/fonts/woff2/IRANSansWeb(NoEn)_UltraLight.woff2 new file mode 100644 index 0000000..e9c0a41 Binary files /dev/null and b/src/assets/IRANSans/Non_English/WebFonts/fonts/woff2/IRANSansWeb(NoEn)_UltraLight.woff2 differ diff --git a/src/assets/IRANSans/SmallSizeFonts/IRANSans(Small).ttf b/src/assets/IRANSans/SmallSizeFonts/IRANSans(Small).ttf new file mode 100644 index 0000000..310a02c Binary files /dev/null and b/src/assets/IRANSans/SmallSizeFonts/IRANSans(Small).ttf differ diff --git a/src/assets/IRANSans/SmallSizeFonts/IRANSans(Small)_Black.ttf b/src/assets/IRANSans/SmallSizeFonts/IRANSans(Small)_Black.ttf new file mode 100644 index 0000000..f4b9a6d Binary files /dev/null and b/src/assets/IRANSans/SmallSizeFonts/IRANSans(Small)_Black.ttf differ diff --git a/src/assets/IRANSans/SmallSizeFonts/IRANSans(Small)_Bold.ttf b/src/assets/IRANSans/SmallSizeFonts/IRANSans(Small)_Bold.ttf new file mode 100644 index 0000000..e41b267 Binary files /dev/null and b/src/assets/IRANSans/SmallSizeFonts/IRANSans(Small)_Bold.ttf differ diff --git a/src/assets/IRANSans/SmallSizeFonts/IRANSans(Small)_Light.ttf b/src/assets/IRANSans/SmallSizeFonts/IRANSans(Small)_Light.ttf new file mode 100644 index 0000000..6390877 Binary files /dev/null and b/src/assets/IRANSans/SmallSizeFonts/IRANSans(Small)_Light.ttf differ diff --git a/src/assets/IRANSans/SmallSizeFonts/IRANSans(Small)_Medium.ttf b/src/assets/IRANSans/SmallSizeFonts/IRANSans(Small)_Medium.ttf new file mode 100644 index 0000000..a066a02 Binary files /dev/null and b/src/assets/IRANSans/SmallSizeFonts/IRANSans(Small)_Medium.ttf differ diff --git a/src/assets/IRANSans/SmallSizeFonts/IRANSans(Small)_UltraLight.ttf b/src/assets/IRANSans/SmallSizeFonts/IRANSans(Small)_UltraLight.ttf new file mode 100644 index 0000000..33bac5b Binary files /dev/null and b/src/assets/IRANSans/SmallSizeFonts/IRANSans(Small)_UltraLight.ttf differ diff --git a/src/assets/IRANSans/SmallSizeFonts/SmallSizeFonts.png b/src/assets/IRANSans/SmallSizeFonts/SmallSizeFonts.png new file mode 100644 index 0000000..758756b Binary files /dev/null and b/src/assets/IRANSans/SmallSizeFonts/SmallSizeFonts.png differ diff --git a/src/assets/IRANSans/WebFonts/IRANSans.html b/src/assets/IRANSans/WebFonts/IRANSans.html new file mode 100644 index 0000000..89af37a --- /dev/null +++ b/src/assets/IRANSans/WebFonts/IRANSans.html @@ -0,0 +1,281 @@ + + + + +IRANSans Family Type face: خانواده فونت ایران سن سریف + + + + + + + +
+ +
+
+

بِسْمِ الله الرَّحْمَنِ الرَّحِيمِ

+
+
د
+
+
+ ن وَالْقَلَمِ وَ مَا يَسْطُرُون +
+ نون؛ سوگند به قلم و آنچه می نويسند. +
+ Noon. I swear by the pen and what the angels write +
+
+
+
+ +
+ +
+

نکاتی درباره تایپوگرافی وب

+
+ +
خ
+
+

از زمان پیدایش نخستین وب سایت، متن ها یکی از اجزای مهم صفحات وب بودند. هر چند به مرور زمان با ورود تصاویر، صوت و فیلم کمی از بار مسئولیت متون کم شد اما هنوز جایگاه خود را از دست نداده اند و بخش مهمی از کار را به عهده دارند.

+

بسیاری از طراحان وب سایت به صورت تجربی بهترین ترکیب و ظاهر را برای نمایش متن ها انتخاب می کنند. اما اصولی وجود دارد که با رعایت آن ها، تاثیرپذیری و زیبایی سایت چند برابر خواهد شد.

+

در ادامه مطلب قصد داریم تعدادی از اصول مقدماتی تایپوگرافی را به اختصار مرور کنیم. هرچند بسیاری از دوستان با این نکات آشنا هستند؛ اما شاید مرور آن ها خالی از لطف نباشد.

+
+ + +
+ +
+
+

تاثیر اندازه فونت و سلسله مراتب تگ‌ها

+
+
پ
+
+

فونت های داخل سایت باید به گونه ای قرار گیرند که کاربر به راحتی بتواند آن ها را بخواند. نوع فونت، وزن و کوچک (یا بزرگ) بودن اندازه آن ممکن است تمایل کاربر برای بازگشت به وب سایت را کاهش دهد. قواعد و قوانین زیادی برای انتخاب بهترین فونت وجود دارد.

+

در زیر می توانید ۵ وزن مختلف خانواده فونت ایران سن سریف را در شرایط یکسان مشاهده کنید. لازم به ذکر است برای این صفحه از وزن نازک (Light) استفاده شده است.

+
+
+ + +
+
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Ultra Light)
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Light)
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Regular)
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Medium)
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Bold)
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Black)
+
+
+ +
+
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Ultra Light)
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Light)
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Regular)
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Medium)
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Bold)
+
بیانِ زبان با گذشت زمان کهنه می شود و بیانِ قلم برای همیشه باقی می ماند (Black)
+
+
+ +
+
+

تگ‌های هدینگ

+
+
ی
+
+

در این بین، استفاده از تگ های هدینگ مناسب و رعایت سلسله مراتب آن ها، هم مفهوم نوشته را بهتر منتقل می کند و هم تاثیر قابل توجهی در نتایج موتورهای جستجو خواهد داشت. این نکته یکی از فاکتورهای مهم در بهینه سازی وب سایت برای موتورهای جستجو (Search Engine Optimization) است.

+

نمونه ای از خروجی تگ های هدینگ با سایز استاندارد مربوطه به فونت های فونت ایران را در زیر مشاهده می کنید.

+
+
+ +
+
+

(H1) نابرده رنج گنج میسر نمی شود. No gain without pain

+

(H2) نابرده رنج گنج میسر نمی شود. No gain without pain

+

(H3) نابرده رنج گنج میسر نمی شود. No gain without pain

+

(H4) نابرده رنج گنج میسر نمی شود. No gain without pain

+
(H5) نابرده رنج گنج میسر نمی شود. No gain without pain
+
(H6) نابرده رنج گنج میسر نمی شود. No gain without pain
+
+
+ +
+
+

(H1) نابرده رنج گنج میسر نمی شود. No gain without pain

+

(H2) نابرده رنج گنج میسر نمی شود. No gain without pain

+

(H3) نابرده رنج گنج میسر نمی شود. No gain without pain

+

(H4) نابرده رنج گنج میسر نمی شود. No gain without pain

+
(H5) نابرده رنج گنج میسر نمی شود. No gain without pain
+
(H6) نابرده رنج گنج میسر نمی شود. No gain without pain
+
+
+ +
+
+

سطر و ستون بندی

+
+
م
+
+

معمولاً هرگاه مقدار نوشته از یک سطر بیشتر شود ناگزیر به ستون بندی هستیم. و این کار ما را با چند متغییر مواجه خواهد کرد:

+

۱- عرض ستون‌های متنی که حاوی حداقل۷ کلمه باشد بهترین انتخاب است. اگر ستون کوتاه‌تر باشد چشم بیننده در اثر حرکت‌های زود به زود از پایان یک سطر به ابتدای سطر بعدی خسته خواهد شد. علاوه بر این لبه ستون‌هایی با عرض کم نیز همیشه دندانه ای و بی نظم خواهد بود. ستون‌هایی با عرض طولانی هم برای خواننده آزار دهنده است چرا که چشم در حرکت بازگشت از انتهای یک سطر به ابتدای سطر بعدی ممکن است دچار اشتباه شود. + +

۲- لدینگ یا همان فاصله سطر هم در ستون بندی اهمیت دارد. ستون‌های فشرده اگرچه به لحاظ گرافیکی منسجم و زیبا هستند اما عمل خواندن را مختل می کنند و در مقابل، فاصله سطر زیاد نیز باعث نازیبایی و خستگی چشم خواننده می‌شود. فاصله سطر همیشه می تواند با توجه به نوع فونت و عرض ستون‌ها تغییر کند. بدین ترتیب که فونت‌هایی با دندانه‌های بلند‌تر و ستون‌هایی با عرض بیشتر به لدینگ بیشتری نیاز دارند. +

۳- همترازی هم یکی از متغییرهای پر بحث در ستون بندی است. اما به طور کوتاه و خلاصه باید گفت که بهتر است در متن فارسی از همترازی یا همان Justification استفاده نکنید. این عمل اگرچه لبه پاراگراف شما را مرتب خواهد کرد اما تنظیمات فاصله حروف را تغییر خواهد داد و در نتیجه باعث کاهش خوانایی خواهد شد.

+
+ +
+
(IRANSans Ultra Light)
+
ایران سن سریف IRANSans سبکی ساده و ضخامت یکسان از قلم ایران است که با وجود حفظ ساختار قلم‌های رایج ایرانی حال و هوای مدرن و امروزی دارد. سادگی شکل‌ حروف و استفاده از حداقل شکستگی باعث شده است این تایپ فیس علاوه بر خوانا بودن زیبا و چشم نواز نیز باشد. این فونت با سبک‌های طراحی کمینه‌گرا Minimal سازگاری خوبی دارد و همنشین مناسبی برای فونت‌های سن‌سریف لاتین است. خانواده فونت ایران سن‌سریف در سال ۱۳۹۴ پرطرفدارترین فونت فارسی بوده است.
+ +
+Roboto has a dual nature. It has a mechanical skeleton and the forms are largely geometric. At the same time, the font features friendly and open curves. While some grotesks distort their letterforms to force a rigid rhythm, Roboto doesn’t compromise, allowing letters to be settled into their natural width. This makes for a more natural reading rhythm more commonly found in humanist and serif types. +
+ +
+ +
+
(IRANSans Light)
+
ایران سن سریف IRANSans سبکی ساده و ضخامت یکسان از قلم ایران است که با وجود حفظ ساختار قلم‌های رایج ایرانی حال و هوای مدرن و امروزی دارد. سادگی شکل‌ حروف و استفاده از حداقل شکستگی باعث شده است این تایپ فیس علاوه بر خوانا بودن زیبا و چشم نواز نیز باشد. این فونت با سبک‌های طراحی کمینه‌گرا Minimal سازگاری خوبی دارد و همنشین مناسبی برای فونت‌های سن‌سریف لاتین است. خانواده فونت ایران سن‌سریف در سال ۱۳۹۴ پرطرفدارترین فونت فارسی بوده است.
+ +
+Roboto has a dual nature. It has a mechanical skeleton and the forms are largely geometric. At the same time, the font features friendly and open curves. While some grotesks distort their letterforms to force a rigid rhythm, Roboto doesn’t compromise, allowing letters to be settled into their natural width. This makes for a more natural reading rhythm more commonly found in humanist and serif types. +
+ +
+ +
+
(IRANSans Regular)
+
ایران سن سریف IRANSans سبکی ساده و ضخامت یکسان از قلم ایران است که با وجود حفظ ساختار قلم‌های رایج ایرانی حال و هوای مدرن و امروزی دارد. سادگی شکل‌ حروف و استفاده از حداقل شکستگی باعث شده است این تایپ فیس علاوه بر خوانا بودن زیبا و چشم نواز نیز باشد. این فونت با سبک‌های طراحی کمینه‌گرا Minimal سازگاری خوبی دارد و همنشین مناسبی برای فونت‌های سن‌سریف لاتین است. خانواده فونت ایران سن‌سریف در سال ۱۳۹۴ پرطرفدارترین فونت فارسی بوده است.
+ +
+Roboto has a dual nature. It has a mechanical skeleton and the forms are largely geometric. At the same time, the font features friendly and open curves. While some grotesks distort their letterforms to force a rigid rhythm, Roboto doesn’t compromise, allowing letters to be settled into their natural width. This makes for a more natural reading rhythm more commonly found in humanist and serif types. +
+ +
+ +
+
(IRANSans Medium)
+
ایران سن سریف IRANSans سبکی ساده و ضخامت یکسان از قلم ایران است که با وجود حفظ ساختار قلم‌های رایج ایرانی حال و هوای مدرن و امروزی دارد. سادگی شکل‌ حروف و استفاده از حداقل شکستگی باعث شده است این تایپ فیس علاوه بر خوانا بودن زیبا و چشم نواز نیز باشد. این فونت با سبک‌های طراحی کمینه‌گرا Minimal سازگاری خوبی دارد و همنشین مناسبی برای فونت‌های سن‌سریف لاتین است. خانواده فونت ایران سن‌سریف در سال ۱۳۹۴ پرطرفدارترین فونت فارسی بوده است.
+ +
+Roboto has a dual nature. It has a mechanical skeleton and the forms are largely geometric. At the same time, the font features friendly and open curves. While some grotesks distort their letterforms to force a rigid rhythm, Roboto doesn’t compromise, allowing letters to be settled into their natural width. This makes for a more natural reading rhythm more commonly found in humanist and serif types. +
+ +
+
+
(IRANSans Bold)
+
ایران سن سریف IRANSans سبکی ساده و ضخامت یکسان از قلم ایران است که با وجود حفظ ساختار قلم‌های رایج ایرانی حال و هوای مدرن و امروزی دارد. سادگی شکل‌ حروف و استفاده از حداقل شکستگی باعث شده است این تایپ فیس علاوه بر خوانا بودن زیبا و چشم نواز نیز باشد. این فونت با سبک‌های طراحی کمینه‌گرا Minimal سازگاری خوبی دارد و همنشین مناسبی برای فونت‌های سن‌سریف لاتین است. خانواده فونت ایران سن‌سریف در سال ۱۳۹۴ پرطرفدارترین فونت فارسی بوده است.
+ +
+Roboto has a dual nature. It has a mechanical skeleton and the forms are largely geometric. At the same time, the font features friendly and open curves. While some grotesks distort their letterforms to force a rigid rhythm, Roboto doesn’t compromise, allowing letters to be settled into their natural width. This makes for a more natural reading rhythm more commonly found in humanist and serif types. +
+ +
+ +
+
(IRANSans Black)
+
ایران سن سریف IRANSans سبکی ساده و ضخامت یکسان از قلم ایران است که با وجود حفظ ساختار قلم‌های رایج ایرانی حال و هوای مدرن و امروزی دارد. سادگی شکل‌ حروف و استفاده از حداقل شکستگی باعث شده است این تایپ فیس علاوه بر خوانا بودن زیبا و چشم نواز نیز باشد. این فونت با سبک‌های طراحی کمینه‌گرا Minimal سازگاری خوبی دارد و همنشین مناسبی برای فونت‌های سن‌سریف لاتین است. خانواده فونت ایران سن‌سریف در سال ۱۳۹۴ پرطرفدارترین فونت فارسی بوده است.
+ +
+Roboto has a dual nature. It has a mechanical skeleton and the forms are largely geometric. At the same time, the font features friendly and open curves. While some grotesks distort their letterforms to force a rigid rhythm, Roboto doesn’t compromise, allowing letters to be settled into their natural width. This makes for a more natural reading rhythm more commonly found in humanist and serif types. +
+ +
+ +
+
+

اعداد و علائم در فونت فارسی

+
+
ظ
+
+

اعداد فارسی: ۱۲۳۴۵۶۷۸۹۰
+ اعداد عربی: ۱۲۳٤٥٦۷۸۹۰
+ اعداد انگلیسی: 1234567890

+

برای تایپ اعداد فارسی در محیط وب از کیبورد استاندارد فارسی استفاده کنید. در ویندوز ۸ و یا بالاتر این کیبورد، با نام Persian(Standard)Keyboard در لیست کیبوردهای ویندوز وجود دارد. همچنین می توانید از این آدرس آن را دانلود و نصب کنید.

+ +

با استفاده از کیبورد استاندارد می‌توانید ممیز فارسی را تایپ کنید.
+ میانبر این علامت کلیدهای Shift+3 است. به این شکل: ۳٫۱۴
+ ممیز فارسی با علامت اسلش تفاوت دارد :۳/۱۴ +

+

با استفاده از کیبورد استاندارد می‌توانید جداکننده هزارگان فارسی را تایپ کنید.
+ میانبر این علامت کلیدهای Shift+2 است. به این شکل: ۹٬۲۱۰٬۰۰۰
+ این علامت با جدا کننده هزارگان انگلیسی تفاوت دارد : ۹,۲۱۰,۰۰۰ +

+
+
+ +
+
+

نسبت‌های طلایی

+
+
+
+ ۳٫۷۷۷ ÷ ۱٫۶۱۸ = ۲٫۳۳۵ +
+ ۶٫۱۱۲ ÷ ۱٫۶۱۸ = ۳٫۷۷۷ +
+ ۹٫۸۸۹ ÷ ۱٫۶۱۸ = ۶٫۱۱۲ +
+ ۱۶ ÷ ۱٫۶۱۸ = ۹٫۸۸۹ +
+....................................... +
+ ۱۶ × ۱٫۶۱۸ = ۲۵٫۸۸۸ +
+ ۲۵٫۸۸۸ × ۱٫۶۱۸ = ۴۱٫۸۸۷ +
+ ۴۱٫۸۸۷ × ۱٫۶۱۸ = ۶۷٫۷۷۳ +
+ ۶۷٫۷۷۳ × ۱٫۶۱۸ = ۱۰۹٫۶۵۶ +
+
+
+

اهمیت اندازه فونت در خوانایی و زیبا شدن صفحه وب سایت بر کسی پوشیده نیست. در کنار این بحث، موارد دیگری مانند ارتفاع خطوط، فاصله ها، ابعاد قسمت های مختلف و ... نیز در بحث تایپوگرافی اهمیت زیادی دارند.

+

برای محاسبه این اعداد می توانیم از سری اعداد متناسب (Modular Scale) استفاده کنیم. در حقیقت از تعدادی عدد پشت سر هم که بر اساس مضرب خاصی تشکیل شده اند برای تنظیمات ارتفاع خط، فاصله ها، ابعاد و ... استفاده می کنیم. نسبت (عدد) طلایی همان مضرب اعداد است.

+

به عنوان مثال می خواهیم از سایز 16px فونت ایران سن سریف به عنوان فونت و سایز اصلی متن صفحات استفاده کنیم. عدد فی (phi) یونانی که معادل ۱٫۶۱۸۰۳۳۹۸۸۷ (به اختصار ۱٫۶۱۸) است را به عنوان نسبت طلایی در نظر می گیریم. بنابراین سری اعدادی به شکل روبرو خواهیم داشت:

+ +

+ به کمک این اعداد و استفاده از آن ها در صفحات وب سایت خود می توانیم خوانایی و زیبایی آن را افزایش دهیم. علاوه بر آن، اگر از واحدهای نسبی مانند em استفاده شود، امکانات بیشتری در اختیار طراح و بازدیدکننده خواهد بود. البته سری اعداد بر مبنای نسبت طلایی فقط در تایپوگرافی وب سایت کاربرد ندارد. + این اعداد می تواند ادامه داشته باشد (۱٬۲۱۵٫۹۸۱ ، ۱٬۹۶۷٫۴۵۷ ، ۳٬۱۸۳٫۳۴۵ و ...). +

+ +
+
+ +
+

خوانایی لینک‌ها

+
غ
+
+

شاید بتوانیم از لینک ها (hyperlinks) به عنوان مهم ترین بخش وب سایت ها در ارتباط با سئو (SEO) و نیز یکی از پرکاربردترین اجزای وب سایت نام ببریم. بنابراین بازدیدکننده باید بتواند به راحتی آن ها را از سایر محتوای صفحه تشخیص داده و متن لینک شده را به سرعت و بدون مزاحمت مشاهده کند.

+

به صورت پیش فرض، متن هایی که داخل یک هایپرلینک قرار می گیرند، زیر خط دار یا underline می شوند (مانند این لینک یا پیوند به صفحه اصلی فونت ایران). در بسیاری از فونت های فارسی، این خط روی متن و نقطه ها قرار می گیرد (مانند این لینک یا پیوند به صفحه اصلی فونت ایران با فونت تاهوما).

+

در صورت بروز این مشکل، یا باید خط زیرین تمام تگ های «a» غیر فعال شود و یا با ترفندهایی به شکل دیگر ایجاد شود (مانند قرار دادن border-bottom برای تگ های «a»).

+

همچنین پیشنهاد می کنیم از قراردادن افکت ها و transition های آزاردهنده روی لینک ها پرهیز کرده و برای راحتی کاربر از padding و color با کانتراست مناسب نسبت به زمینه استفاده کنید.

+
+
+ + + +
+
+
+در این فایل سعی کردیم همراه با یک مطلب آموزشی کوتاه، نحوه استفاده از خانواده فونت ایران سن سریف و پیش نمایشی از قسمت های مختلف آن را مرور کنیم. +
+برای مشاهده راهنمای نحوه قراردادن فونت ها در وب سایت خود، به این آدرس مراجعه کنید. +
+
+
+
ء
+
+ +
+ +
+ + \ No newline at end of file diff --git a/src/assets/IRANSans/WebFonts/WebFonts.png b/src/assets/IRANSans/WebFonts/WebFonts.png new file mode 100644 index 0000000..82d3e21 Binary files /dev/null and b/src/assets/IRANSans/WebFonts/WebFonts.png differ diff --git a/src/assets/IRANSans/WebFonts/css/fontiran.css b/src/assets/IRANSans/WebFonts/css/fontiran.css new file mode 100644 index 0000000..4ec1123 --- /dev/null +++ b/src/assets/IRANSans/WebFonts/css/fontiran.css @@ -0,0 +1,80 @@ +/** +* +* Name: IRAN Sans-Serif Font +* Version: 5.0 +* Author: Moslem Ebrahimi (moslemebrahimi.com) +* Created on: Dec 25, 2012 +* Updated on: Sep 01, 2017 +* Website: http://fontiran.com +* Copyright: Commercial/Proprietary Software +-------------------------------------------------------------------------------------- +فونت های ایران سن سریف یک نرم افزار مالکیتی محسوب می شود. جهت آگاهی از قوانین استفاده از این فونت ها لطفا به وب سایت (فونت ایران دات کام) مراجعه نمایید +-------------------------------------------------------------------------------------- +IRAN Sans-serif fonts are considered a proprietary software. To gain information about the laws regarding the use of these fonts, please visit www.fontiran.com +-------------------------------------------------------------------------------------- +This set of fonts are used in this project under the license: (.....) +-------------------------------------------------------------------------------------- +* +**/ +@font-face { + font-family: IRANSans; + font-style: normal; + font-weight: 900; + src: url('../fonts/eot/IRANSansWeb_Black.eot'); + src: url('../fonts/eot/IRANSansWeb_Black.eot?#iefix') format('embedded-opentype'), + /* IE6-8 */ url('../fonts/woff2/IRANSansWeb_Black.woff2') format('woff2'), + /* FF39+,Chrome36+, Opera24+*/ url('../fonts/woff/IRANSansWeb_Black.woff') format('woff'), + /* FF3.6+, IE9, Chrome6+, Saf5.1+*/ url('../fonts/ttf/IRANSansWeb_Black.ttf') format('truetype'); +} +@font-face { + font-family: IRANSans; + font-style: normal; + font-weight: bold; + src: url('../fonts/eot/IRANSansWeb_Bold.eot'); + src: url('../fonts/eot/IRANSansWeb_Bold.eot?#iefix') format('embedded-opentype'), + /* IE6-8 */ url('../fonts/woff2/IRANSansWeb_Bold.woff2') format('woff2'), + /* FF39+,Chrome36+, Opera24+*/ url('../fonts/woff/IRANSansWeb_Bold.woff') format('woff'), + /* FF3.6+, IE9, Chrome6+, Saf5.1+*/ url('../fonts/ttf/IRANSansWeb_Bold.ttf') format('truetype'); +} +@font-face { + font-family: IRANSans; + font-style: normal; + font-weight: 500; + src: url('../fonts/eot/IRANSansWeb_Medium.eot'); + src: url('../fonts/eot/IRANSansWeb_Medium.eot?#iefix') format('embedded-opentype'), + /* IE6-8 */ url('../fonts/woff2/IRANSansWeb_Medium.woff2') format('woff2'), + /* FF39+,Chrome36+, Opera24+*/ url('../fonts/woff/IRANSansWeb_Medium.woff') format('woff'), + /* FF3.6+, IE9, Chrome6+, Saf5.1+*/ url('../fonts/ttf/IRANSansWeb_Medium.ttf') + format('truetype'); +} +@font-face { + font-family: IRANSans; + font-style: normal; + font-weight: 300; + src: url('../fonts/eot/IRANSansWeb_Light.eot'); + src: url('../fonts/eot/IRANSansWeb_Light.eot?#iefix') format('embedded-opentype'), + /* IE6-8 */ url('../fonts/woff2/IRANSansWeb_Light.woff2') format('woff2'), + /* FF39+,Chrome36+, Opera24+*/ url('../fonts/woff/IRANSansWeb_Light.woff') format('woff'), + /* FF3.6+, IE9, Chrome6+, Saf5.1+*/ url('../fonts/ttf/IRANSansWeb_Light.ttf') format('truetype'); +} +@font-face { + font-family: IRANSans; + font-style: normal; + font-weight: 200; + src: url('../fonts/eot/IRANSansWeb_UltraLight.eot'); + src: url('../fonts/eot/IRANSansWeb_UltraLight.eot?#iefix') format('embedded-opentype'), + /* IE6-8 */ url('../fonts/woff2/IRANSansWeb_UltraLight.woff2') format('woff2'), + /* FF39+,Chrome36+, Opera24+*/ url('../fonts/woff/IRANSansWeb_UltraLight.woff') format('woff'), + /* FF3.6+, IE9, Chrome6+, Saf5.1+*/ url('../fonts/ttf/IRANSansWeb_UltraLight.ttf') + format('truetype'); +} +@font-face { + font-family: IRANSans; + font-style: normal; + font-weight: normal; + src: url('../fonts/eot/IRANSansWeb.eot'); + src: url('../fonts/eot/IRANSansWeb.eot?#iefix') format('embedded-opentype'), + /* IE6-8 */ url('../fonts/woff2/IRANSansWeb.woff2') format('woff2'), + /* FF39+,Chrome36+, Opera24+*/ url('../fonts/woff/IRANSansWeb.woff') format('woff'), + /* FF3.6+, IE9, Chrome6+, Saf5.1+*/ url('../fonts/ttf/IRANSansWeb.ttf') format('truetype'); +} diff --git a/src/assets/IRANSans/WebFonts/css/style.css b/src/assets/IRANSans/WebFonts/css/style.css new file mode 100644 index 0000000..b5457ff --- /dev/null +++ b/src/assets/IRANSans/WebFonts/css/style.css @@ -0,0 +1,191 @@ +@import url(fontiran.css); /* لینک فایلی که وظیفه بارگذاری فونت ها را برعهده دارد */ +body { + font-family: IRANSans !important; + font-weight: 300; + direction: rtl; + background-color: #e2e2e2; + margin: 0; +} +h1, +h2, +h3, +h4, +h5, +h6, +input, +textarea { + font-family: IRANSans !important; +} +h1 { + font-weight: bold; +} +.wrapper { + max-width: 900px; + margin: 0 auto; +} +.ltr { + direction: ltr; +} +.text-right { + text-align: right; +} +.text-center { + text-align: center; +} +.text-left { + text-align: left; +} +.text-small { + font-size: 0.8em; +} +.text-xsmall { + font-size: 0.6em; +} +.text-large { + font-size: 1.2em; +} +.text-xlarge { + font-size: 1.4em; +} +.text-underline { + text-decoration: underline; +} +.text-ultralight { + font-weight: 200; +} +.text-light { + font-weight: 300; +} +.text-regular { + font-weight: normal; +} +.text-medium { + font-weight: 500; +} +.text-bold { + font-weight: bold; +} +.text-black { + font-weight: 900; +} +blockquote { + font-weight: 500; + padding: 10px; + border: 1px dashed #666666; +} + +.mainbox { + width: 100%; + background-color: #efefef; + display: table; + margin-bottom: 30px; + border-right: 8px solid #ffff33; +} + +.mainboxnegativ { + width: 100%; + background-color: #000000; + display: table; + margin-bottom: 30px; + border-right: 8px solid #ffff33; + color: #f9f9f9; +} + +.mainbox2 { + font-size: 1em; + width: 90%; + padding-right: 20px; + padding-top: 10px; + padding-bottom: 10px; +} + +.mainbox3 { + width: 100%; + background-color: #b8b8b8; + display: table; + margin-bottom: 30px; + border-right: 8px solid #bd70ff; +} + +.mainbox2negativ { + font-size: 1em; + color: #f9f9f9; + background-color: #000000; + padding-right: 20px; +} + +.farsiparagraph { + font-size: 1em; + width: 47%; + float: right; + padding-right: 20px; + padding-top: 10px; + padding-bottom: 10px; +} +.englishparagraph { + font-size: 1em; + width: 47%; + float: left; + direction: ltr; + padding-left: 20px; + padding-top: 10px; + padding-bottom: 10px; +} +.rightbox { + width: 60%; + padding-right: 20px; + padding-left: 5px; + float: right; + margin-left: 10px; + margin-bottom: 0px; + min-width: 0px; + background-color: #f7f7f7; +} + +.titelbox { + width: 60%; + padding-right: 25px; + padding-left: 0px; + float: right; + margin-left: 10px; + margin-bottom: 0px; + min-width: 0px; + background-color: #f2f2f2; + color: #4b4b4b; +} + +.lefttbox { + padding-right: 20px; + padding-left: 4px; + float: right; + margin-bottom: 10px; + min-width: 0px; +} + +.alphabet { + width: 35%; + float: left; + font-size: 21em; + text-align: center; + font-weight: 500; + color: #999999; +} + +.alphabet2 { + width: 35%; + float: left; + direction: ltr; + font-size: 1.6em; + text-align: left; + font-weight: 500; + color: #333333; + margin-top: 100px; +} +.footer { + font-weight: 300; + font-size: 0.7em; + text-align: center; + direction: ltr; + margin-bottom: 0px; + padding-bottom: 0px; +} diff --git a/src/assets/IRANSans/WebFonts/fonts/eot/IRANSansWeb.eot b/src/assets/IRANSans/WebFonts/fonts/eot/IRANSansWeb.eot new file mode 100644 index 0000000..553eec8 Binary files /dev/null and b/src/assets/IRANSans/WebFonts/fonts/eot/IRANSansWeb.eot differ diff --git a/src/assets/IRANSans/WebFonts/fonts/eot/IRANSansWeb_Black.eot b/src/assets/IRANSans/WebFonts/fonts/eot/IRANSansWeb_Black.eot new file mode 100644 index 0000000..ee7c6a0 Binary files /dev/null and b/src/assets/IRANSans/WebFonts/fonts/eot/IRANSansWeb_Black.eot differ diff --git a/src/assets/IRANSans/WebFonts/fonts/eot/IRANSansWeb_Bold.eot b/src/assets/IRANSans/WebFonts/fonts/eot/IRANSansWeb_Bold.eot new file mode 100644 index 0000000..746a6e6 Binary files /dev/null and b/src/assets/IRANSans/WebFonts/fonts/eot/IRANSansWeb_Bold.eot differ diff --git a/src/assets/IRANSans/WebFonts/fonts/eot/IRANSansWeb_Light.eot b/src/assets/IRANSans/WebFonts/fonts/eot/IRANSansWeb_Light.eot new file mode 100644 index 0000000..f79a681 Binary files /dev/null and b/src/assets/IRANSans/WebFonts/fonts/eot/IRANSansWeb_Light.eot differ diff --git a/src/assets/IRANSans/WebFonts/fonts/eot/IRANSansWeb_Medium.eot b/src/assets/IRANSans/WebFonts/fonts/eot/IRANSansWeb_Medium.eot new file mode 100644 index 0000000..8b31d6b Binary files /dev/null and b/src/assets/IRANSans/WebFonts/fonts/eot/IRANSansWeb_Medium.eot differ diff --git a/src/assets/IRANSans/WebFonts/fonts/eot/IRANSansWeb_UltraLight.eot b/src/assets/IRANSans/WebFonts/fonts/eot/IRANSansWeb_UltraLight.eot new file mode 100644 index 0000000..fd4b205 Binary files /dev/null and b/src/assets/IRANSans/WebFonts/fonts/eot/IRANSansWeb_UltraLight.eot differ diff --git a/src/assets/IRANSans/WebFonts/fonts/ttf/IRANSansWeb.ttf b/src/assets/IRANSans/WebFonts/fonts/ttf/IRANSansWeb.ttf new file mode 100644 index 0000000..7416c53 Binary files /dev/null and b/src/assets/IRANSans/WebFonts/fonts/ttf/IRANSansWeb.ttf differ diff --git a/src/assets/IRANSans/WebFonts/fonts/ttf/IRANSansWeb_Black.ttf b/src/assets/IRANSans/WebFonts/fonts/ttf/IRANSansWeb_Black.ttf new file mode 100644 index 0000000..df4928f Binary files /dev/null and b/src/assets/IRANSans/WebFonts/fonts/ttf/IRANSansWeb_Black.ttf differ diff --git a/src/assets/IRANSans/WebFonts/fonts/ttf/IRANSansWeb_Bold.ttf b/src/assets/IRANSans/WebFonts/fonts/ttf/IRANSansWeb_Bold.ttf new file mode 100644 index 0000000..158fbaa Binary files /dev/null and b/src/assets/IRANSans/WebFonts/fonts/ttf/IRANSansWeb_Bold.ttf differ diff --git a/src/assets/IRANSans/WebFonts/fonts/ttf/IRANSansWeb_Light.ttf b/src/assets/IRANSans/WebFonts/fonts/ttf/IRANSansWeb_Light.ttf new file mode 100644 index 0000000..3060c60 Binary files /dev/null and b/src/assets/IRANSans/WebFonts/fonts/ttf/IRANSansWeb_Light.ttf differ diff --git a/src/assets/IRANSans/WebFonts/fonts/ttf/IRANSansWeb_Medium.ttf b/src/assets/IRANSans/WebFonts/fonts/ttf/IRANSansWeb_Medium.ttf new file mode 100644 index 0000000..6dd6c5d Binary files /dev/null and b/src/assets/IRANSans/WebFonts/fonts/ttf/IRANSansWeb_Medium.ttf differ diff --git a/src/assets/IRANSans/WebFonts/fonts/ttf/IRANSansWeb_UltraLight.ttf b/src/assets/IRANSans/WebFonts/fonts/ttf/IRANSansWeb_UltraLight.ttf new file mode 100644 index 0000000..7ebe1bf Binary files /dev/null and b/src/assets/IRANSans/WebFonts/fonts/ttf/IRANSansWeb_UltraLight.ttf differ diff --git a/src/assets/IRANSans/WebFonts/fonts/woff/IRANSansWeb.woff b/src/assets/IRANSans/WebFonts/fonts/woff/IRANSansWeb.woff new file mode 100644 index 0000000..abb63f2 Binary files /dev/null and b/src/assets/IRANSans/WebFonts/fonts/woff/IRANSansWeb.woff differ diff --git a/src/assets/IRANSans/WebFonts/fonts/woff/IRANSansWeb_Black.woff b/src/assets/IRANSans/WebFonts/fonts/woff/IRANSansWeb_Black.woff new file mode 100644 index 0000000..12c8a6e Binary files /dev/null and b/src/assets/IRANSans/WebFonts/fonts/woff/IRANSansWeb_Black.woff differ diff --git a/src/assets/IRANSans/WebFonts/fonts/woff/IRANSansWeb_Bold.woff b/src/assets/IRANSans/WebFonts/fonts/woff/IRANSansWeb_Bold.woff new file mode 100644 index 0000000..801c55d Binary files /dev/null and b/src/assets/IRANSans/WebFonts/fonts/woff/IRANSansWeb_Bold.woff differ diff --git a/src/assets/IRANSans/WebFonts/fonts/woff/IRANSansWeb_Light.woff b/src/assets/IRANSans/WebFonts/fonts/woff/IRANSansWeb_Light.woff new file mode 100644 index 0000000..99b8d5d Binary files /dev/null and b/src/assets/IRANSans/WebFonts/fonts/woff/IRANSansWeb_Light.woff differ diff --git a/src/assets/IRANSans/WebFonts/fonts/woff/IRANSansWeb_Medium.woff b/src/assets/IRANSans/WebFonts/fonts/woff/IRANSansWeb_Medium.woff new file mode 100644 index 0000000..322c396 Binary files /dev/null and b/src/assets/IRANSans/WebFonts/fonts/woff/IRANSansWeb_Medium.woff differ diff --git a/src/assets/IRANSans/WebFonts/fonts/woff/IRANSansWeb_UltraLight.woff b/src/assets/IRANSans/WebFonts/fonts/woff/IRANSansWeb_UltraLight.woff new file mode 100644 index 0000000..31c21ca Binary files /dev/null and b/src/assets/IRANSans/WebFonts/fonts/woff/IRANSansWeb_UltraLight.woff differ diff --git a/src/assets/IRANSans/WebFonts/fonts/woff2/IRANSansWeb.woff2 b/src/assets/IRANSans/WebFonts/fonts/woff2/IRANSansWeb.woff2 new file mode 100644 index 0000000..21bbba5 Binary files /dev/null and b/src/assets/IRANSans/WebFonts/fonts/woff2/IRANSansWeb.woff2 differ diff --git a/src/assets/IRANSans/WebFonts/fonts/woff2/IRANSansWeb_Black.woff2 b/src/assets/IRANSans/WebFonts/fonts/woff2/IRANSansWeb_Black.woff2 new file mode 100644 index 0000000..da34aad Binary files /dev/null and b/src/assets/IRANSans/WebFonts/fonts/woff2/IRANSansWeb_Black.woff2 differ diff --git a/src/assets/IRANSans/WebFonts/fonts/woff2/IRANSansWeb_Bold.woff2 b/src/assets/IRANSans/WebFonts/fonts/woff2/IRANSansWeb_Bold.woff2 new file mode 100644 index 0000000..dd1436c Binary files /dev/null and b/src/assets/IRANSans/WebFonts/fonts/woff2/IRANSansWeb_Bold.woff2 differ diff --git a/src/assets/IRANSans/WebFonts/fonts/woff2/IRANSansWeb_Light.woff2 b/src/assets/IRANSans/WebFonts/fonts/woff2/IRANSansWeb_Light.woff2 new file mode 100644 index 0000000..16dc9f1 Binary files /dev/null and b/src/assets/IRANSans/WebFonts/fonts/woff2/IRANSansWeb_Light.woff2 differ diff --git a/src/assets/IRANSans/WebFonts/fonts/woff2/IRANSansWeb_Medium.woff2 b/src/assets/IRANSans/WebFonts/fonts/woff2/IRANSansWeb_Medium.woff2 new file mode 100644 index 0000000..5fb39d4 Binary files /dev/null and b/src/assets/IRANSans/WebFonts/fonts/woff2/IRANSansWeb_Medium.woff2 differ diff --git a/src/assets/IRANSans/WebFonts/fonts/woff2/IRANSansWeb_UltraLight.woff2 b/src/assets/IRANSans/WebFonts/fonts/woff2/IRANSansWeb_UltraLight.woff2 new file mode 100644 index 0000000..eeeec11 Binary files /dev/null and b/src/assets/IRANSans/WebFonts/fonts/woff2/IRANSansWeb_UltraLight.woff2 differ diff --git a/src/assets/IRANSans/license.pdf b/src/assets/IRANSans/license.pdf new file mode 100644 index 0000000..6f9c008 Binary files /dev/null and b/src/assets/IRANSans/license.pdf differ diff --git a/src/assets/images/pic.png b/src/assets/images/pic.png new file mode 100644 index 0000000..b679033 Binary files /dev/null and b/src/assets/images/pic.png differ diff --git a/src/index.js b/src/index.js index ef2edf8..bc7eb6d 100644 --- a/src/index.js +++ b/src/index.js @@ -2,7 +2,8 @@ import React from 'react'; import ReactDOM from 'react-dom'; import './index.css'; import App from './App'; -import reportWebVitals from './reportWebVitals'; +import 'bootstrap/dist/css/bootstrap.min.css'; +import 'react-toastify/dist/ReactToastify.css'; ReactDOM.render( @@ -11,7 +12,3 @@ ReactDOM.render( document.getElementById('root') ); -// If you want to start measuring performance in your app, pass a function -// to log results (for example: reportWebVitals(console.log)) -// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals -reportWebVitals(); diff --git a/src/logo.svg b/src/logo.svg deleted file mode 100644 index 9dfc1c0..0000000 --- a/src/logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/reportWebVitals.js b/src/reportWebVitals.js deleted file mode 100644 index 5253d3a..0000000 --- a/src/reportWebVitals.js +++ /dev/null @@ -1,13 +0,0 @@ -const reportWebVitals = onPerfEntry => { - if (onPerfEntry && onPerfEntry instanceof Function) { - import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { - getCLS(onPerfEntry); - getFID(onPerfEntry); - getFCP(onPerfEntry); - getLCP(onPerfEntry); - getTTFB(onPerfEntry); - }); - } -}; - -export default reportWebVitals; diff --git a/src/setupTests.js b/src/setupTests.js deleted file mode 100644 index 8f2609b..0000000 --- a/src/setupTests.js +++ /dev/null @@ -1,5 +0,0 @@ -// jest-dom adds custom jest matchers for asserting on DOM nodes. -// allows you to do things like: -// expect(element).toHaveTextContent(/react/i) -// learn more: https://github.com/testing-library/jest-dom -import '@testing-library/jest-dom'; diff --git a/src/views/Auth/Auth.js b/src/views/Auth/Auth.js new file mode 100644 index 0000000..56e032f --- /dev/null +++ b/src/views/Auth/Auth.js @@ -0,0 +1,7 @@ +import React, { Component } from "react"; + +export default class Auth extends Component { + render() { + return
; + } +} diff --git a/src/views/Home/Footer/Footer.js b/src/views/Home/Footer/Footer.js new file mode 100644 index 0000000..0678826 --- /dev/null +++ b/src/views/Home/Footer/Footer.js @@ -0,0 +1,7 @@ +import React, { Component } from "react"; + +export default class Footer extends Component { + render() { + return ; + } +} diff --git a/src/views/Home/Home.js b/src/views/Home/Home.js new file mode 100644 index 0000000..3f55a2a --- /dev/null +++ b/src/views/Home/Home.js @@ -0,0 +1,85 @@ +import React, { Component } from "react"; + +import Navbar from "./Navbar/Navbar"; +import HomeHeader from "./HomeHeader/HomeHeader"; +import HomeStatic from "./HomeStatic/HomeStatic"; +import HomeScroll from "./HomeScroll/HomeScroll"; +import Footer from "./Footer/Footer"; + +import pic from "../../assets/images/pic.png"; + +import './Home.scss'; +export default class Home extends Component { + constructor(props) { + super(props); + this.state = { + homeData: [ + { + type: "header", + data: [ + { + image: pic, + width: 1, + }, + ], + }, + { + type: "static-box", + data: [ + { + image: pic, + width: 3, + }, + { + image: pic, + width:3, + }, + // { + // image: pic, + // width:3, + // }, + ], + }, + { + type: "scroll", + data: [ + { + image: pic, + width: 1.5, + }, + { + image: pic, + width: 2, + }, + { + image: pic, + width: 2.5, + }, + ], + }, + ], + }; + } + render() { + const { homeData } = this.state; + return ( +
+ + {homeData.map((item, i) => ( + + ))} +
+
+ ); + } +} + +const Identifier = (props) => { + return ( + <> + {props.type === "header" ? : null} + {props.type === "static-box" ? : null} + {props.type === "scroll" ? : null} + + ); +}; diff --git a/src/views/Home/Home.scss b/src/views/Home/Home.scss new file mode 100644 index 0000000..3090eaa --- /dev/null +++ b/src/views/Home/Home.scss @@ -0,0 +1,5 @@ +.home{ + width: 100vw; + padding : 0px 5px; + overflow-x: hidden; +} \ No newline at end of file diff --git a/src/views/Home/HomeHeader/HomeHeader.js b/src/views/Home/HomeHeader/HomeHeader.js new file mode 100644 index 0000000..470ab68 --- /dev/null +++ b/src/views/Home/HomeHeader/HomeHeader.js @@ -0,0 +1,28 @@ +import React, { Component } from "react"; + +import "./HomeHeader.scss"; +export default class HomeHeader extends Component { + render() { + const { data } = this.props; + return ( +
+ {data.map((item, i) => ( + + ))} +
+ ); + } +} + +const Item = (props) => { + return ( + عکس + ); +}; diff --git a/src/views/Home/HomeHeader/HomeHeader.scss b/src/views/Home/HomeHeader/HomeHeader.scss new file mode 100644 index 0000000..4e5bec7 --- /dev/null +++ b/src/views/Home/HomeHeader/HomeHeader.scss @@ -0,0 +1,4 @@ +.home-header{ + width: 100%; + height : 250px; +} \ No newline at end of file diff --git a/src/views/Home/HomeScroll/HomeScroll.js b/src/views/Home/HomeScroll/HomeScroll.js new file mode 100644 index 0000000..3b12bbf --- /dev/null +++ b/src/views/Home/HomeScroll/HomeScroll.js @@ -0,0 +1,28 @@ +import React, { Component } from "react"; + +import "./HomeScroll.scss"; +export default class HomeScroll extends Component { + render() { + const { data } = this.props; + return ( +
+ {data.map((item, i) => ( + + ))} +
+ ); + } +} + +const Item = (props) => { + return ( + عکس + ); +}; diff --git a/src/views/Home/HomeScroll/HomeScroll.scss b/src/views/Home/HomeScroll/HomeScroll.scss new file mode 100644 index 0000000..accec05 --- /dev/null +++ b/src/views/Home/HomeScroll/HomeScroll.scss @@ -0,0 +1,9 @@ +.home-scroll { + margin-top: 20px; + width: 100vw; + height: 200px; + overflow-x: scroll; + img { + margin: 0px 5px; + } +} diff --git a/src/views/Home/HomeStatic/HomeStatic.js b/src/views/Home/HomeStatic/HomeStatic.js new file mode 100644 index 0000000..644d344 --- /dev/null +++ b/src/views/Home/HomeStatic/HomeStatic.js @@ -0,0 +1,25 @@ +import React, { Component } from "react"; + +import "./HomeStatic.scss"; +export default class HomeStatic extends Component { + render() { + const { data } = this.props; + return ( +
+ {data.map((item, i) => ( + + ))} +
+ ); + } +} + +const Item = (props) => { + return ( + عکس + ); +}; diff --git a/src/views/Home/HomeStatic/HomeStatic.scss b/src/views/Home/HomeStatic/HomeStatic.scss new file mode 100644 index 0000000..382600a --- /dev/null +++ b/src/views/Home/HomeStatic/HomeStatic.scss @@ -0,0 +1,8 @@ +.home-static{ + justify-content: space-around; + margin-top: 20px; + width: 100%; + img { + padding : 5px; + } +} \ No newline at end of file diff --git a/src/views/Home/Navbar/Navbar.js b/src/views/Home/Navbar/Navbar.js new file mode 100644 index 0000000..9224da5 --- /dev/null +++ b/src/views/Home/Navbar/Navbar.js @@ -0,0 +1,8 @@ +import React, { Component } from "react"; + +import './Navbar.scss'; +export default class Navbar extends Component { + render() { + return ; + } +} diff --git a/src/views/Home/Navbar/Navbar.scss b/src/views/Home/Navbar/Navbar.scss new file mode 100644 index 0000000..dab9300 --- /dev/null +++ b/src/views/Home/Navbar/Navbar.scss @@ -0,0 +1,8 @@ +.navbar{ + width: 100%; + height: 60px; + background-color: rgb(14, 185, 14); + position: fixed; + top : 0px; + left : 0px; +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 932854c..30017e7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1091,6 +1091,13 @@ dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@^7.1.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.9.2": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.0.tgz#46794bc20b612c5f75e62dd071e24dfd95f1cbe6" + integrity sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA== + dependencies: + regenerator-runtime "^0.13.4" + "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4": version "7.12.18" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.18.tgz#af137bd7e7d9705a412b3caaf991fe6aaa97831b" @@ -1098,13 +1105,6 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.12.5", "@babel/runtime@^7.9.2": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.0.tgz#46794bc20b612c5f75e62dd071e24dfd95f1cbe6" - integrity sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA== - dependencies: - regenerator-runtime "^0.13.4" - "@babel/template@^7.10.4", "@babel/template@^7.12.13", "@babel/template@^7.3.3": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" @@ -1709,6 +1709,14 @@ dependencies: "@types/node" "*" +"@types/hoist-non-react-statics@^3.3.0": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f" + integrity sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA== + dependencies: + "@types/react" "*" + hoist-non-react-statics "^3.3.0" + "@types/html-minifier-terser@^5.0.0": version "5.1.1" resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#3c9ee980f1a10d6021ae6632ca3e79ca2ec4fb50" @@ -1776,11 +1784,35 @@ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.2.1.tgz#374e31645d58cb18a07b3ecd8e9dede4deb2cccd" integrity sha512-DxZZbyMAM9GWEzXL+BMZROWz9oo6A9EilwwOMET2UVu2uZTqMWS5S69KVtuVKaRjCUpcrOXRalet86/OpG4kqw== +"@types/prop-types@*": + version "15.7.3" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" + integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== + "@types/q@^1.5.1": version "1.5.4" resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24" integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== +"@types/react-redux@^7.1.16": + version "7.1.16" + resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.16.tgz#0fbd04c2500c12105494c83d4a3e45c084e3cb21" + integrity sha512-f/FKzIrZwZk7YEO9E1yoxIuDNRiDducxkFlkw/GNMGEnK9n4K8wJzlJBghpSuOVDgEUHoDkDF7Gi9lHNQR4siw== + dependencies: + "@types/hoist-non-react-statics" "^3.3.0" + "@types/react" "*" + hoist-non-react-statics "^3.3.0" + redux "^4.0.0" + +"@types/react@*": + version "17.0.8" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.8.tgz#fe76e3ba0fbb5602704110fd1e3035cf394778e3" + integrity sha512-3sx4c0PbXujrYAKwXxNONXUtRp9C+hE2di0IuxFyf5BELD+B+AXL8G7QrmSKhVwKZDbv0igiAjQAMhXj8Yg3aw== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + "@types/resolve@0.0.8": version "0.0.8" resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194" @@ -1788,6 +1820,11 @@ dependencies: "@types/node" "*" +"@types/scheduler@*": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.1.tgz#18845205e86ff0038517aab7a18a62a6b9f71275" + integrity sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA== + "@types/source-list-map@*": version "0.1.2" resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" @@ -2117,6 +2154,11 @@ abab@^2.0.3: resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: version "1.3.7" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" @@ -2209,6 +2251,11 @@ alphanum-sort@^1.0.0: resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= + ansi-colors@^3.0.0: version "3.2.4" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" @@ -2236,6 +2283,11 @@ ansi-regex@^2.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + ansi-regex@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" @@ -2246,6 +2298,11 @@ ansi-regex@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -2276,11 +2333,19 @@ anymatch@^3.0.3, anymatch@~3.1.1: normalize-path "^3.0.0" picomatch "^2.0.4" -aproba@^1.1.1: +aproba@^1.0.3, aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -2316,6 +2381,11 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= + array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -2438,6 +2508,11 @@ async-each@^1.0.1: resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== +async-foreach@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" + integrity sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI= + async-limiter@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" @@ -2493,6 +2568,13 @@ axe-core@^4.0.2: resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.1.2.tgz#7cf783331320098bfbef620df3b3c770147bc224" integrity sha512-V+Nq70NxKhYt89ArVcaNL9FDryB3vQOd+BFXZIfO3RP6rwtj+2yqqqdHEkacutglPaZLkJeuXKCjCJDMGPtPqg== +axios@^0.21.1: + version "0.21.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" + integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== + dependencies: + follow-redirects "^1.10.0" + axobject-query@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" @@ -2777,6 +2859,11 @@ boolbase@^1.0.0, boolbase@~1.0.0: resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= +bootstrap@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.0.1.tgz#e7939d599119dc818a90478a2a299bdaff037e09" + integrity sha512-Fl79+wsLOZKoiU345KeEaWD0ik8WKRI5zm0YSPj2oF1Qr+BO7z0fco6GbUtqjoG1h4VI89PeKJnMsMMVQdKKTw== + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -3050,11 +3137,24 @@ camel-case@^4.1.1: pascal-case "^3.1.2" tslib "^2.0.3" +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + camelcase@5.3.1, camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= + camelcase@^6.0.0, camelcase@^6.1.0, camelcase@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" @@ -3101,6 +3201,17 @@ chalk@2.4.2, chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chalk@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + chalk@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" @@ -3135,6 +3246,21 @@ check-types@^11.1.1: resolved "https://registry.yarnpkg.com/check-types/-/check-types-11.1.2.tgz#86a7c12bf5539f6324eb0e70ca8896c0e38f3e2f" integrity sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ== +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" + integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.5.0" + optionalDependencies: + fsevents "~2.3.1" + chokidar@^2.1.8: version "2.1.8" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" @@ -3154,21 +3280,6 @@ chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.4.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" - integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.5.0" - optionalDependencies: - fsevents "~2.3.1" - chownr@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" @@ -3244,6 +3355,11 @@ cliui@^6.0.0: strip-ansi "^6.0.0" wrap-ansi "^6.2.0" +clsx@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" + integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== + co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" @@ -3258,6 +3374,11 @@ coa@^2.0.2: chalk "^2.4.1" q "^1.1.2" +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + collect-v8-coverage@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" @@ -3405,6 +3526,11 @@ console-browserify@^1.1.0: resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + constants-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" @@ -3557,7 +3683,7 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: safe-buffer "^5.0.1" sha.js "^2.4.8" -cross-spawn@7.0.3, cross-spawn@^7.0.0, cross-spawn@^7.0.2: +cross-spawn@7.0.3, cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -3819,6 +3945,18 @@ cssstyle@^2.2.0: dependencies: cssom "~0.3.6" +csstype@^3.0.2: + version "3.0.8" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.8.tgz#d2266a792729fb227cd216fb572f43728e1ad340" + integrity sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw== + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= + dependencies: + array-find-index "^1.0.1" + cyclist@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" @@ -3874,7 +4012,7 @@ debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: dependencies: ms "2.1.2" -decamelize@^1.2.0: +decamelize@^1.1.2, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= @@ -3971,6 +4109,11 @@ delayed-stream@~1.0.0: resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" @@ -4271,6 +4414,11 @@ entities@^2.0.0: resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== +env-paths@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + errno@^0.1.3, errno@~0.1.7: version "0.1.8" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" @@ -4379,7 +4527,7 @@ escape-string-regexp@2.0.0, escape-string-regexp@^2.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== -escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= @@ -4953,6 +5101,14 @@ find-up@4.1.0, find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + find-up@^2.0.0, find-up@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" @@ -4998,6 +5154,11 @@ follow-redirects@^1.0.0: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.2.tgz#dd73c8effc12728ba5cf4259d760ea5fb83e3147" integrity sha512-6mPTgLxYm3r6Bkkg0vNM0HTjfGrOEtsfbhagQvbxDEsEkpNhw582upBaoRZylzen6krEmxXJgt9Ju6HiI4O7BA== +follow-redirects@^1.10.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.1.tgz#d9114ded0a1cfdd334e164e6662ad02bfd91ff43" + integrity sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg== + for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -5128,6 +5289,27 @@ functional-red-black-tree@^1.0.1: resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +gaze@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" + integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g== + dependencies: + globule "^1.0.0" + gensync@^1.0.0-beta.1: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" @@ -5157,6 +5339,11 @@ get-package-type@^0.1.0: resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= + get-stream@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" @@ -5198,6 +5385,18 @@ glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0: dependencies: is-glob "^4.0.1" +glob@^7.0.0, glob@~7.1.1: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" @@ -5273,7 +5472,16 @@ globby@^6.1.0: pify "^2.0.0" pinkie-promise "^2.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: +globule@^1.0.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/globule/-/globule-1.3.2.tgz#d8bdd9e9e4eef8f96e245999a5dee7eb5d8529c4" + integrity sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA== + dependencies: + glob "~7.1.1" + lodash "~4.17.10" + minimatch "~3.0.2" + +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.3, graceful-fs@^4.2.4: version "4.2.6" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== @@ -5314,6 +5522,13 @@ harmony-reflect@^1.4.6: resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.1.tgz#c108d4f2bb451efef7a37861fdbdae72c9bdefa9" integrity sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA== +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -5329,6 +5544,11 @@ has-symbols@^1.0.1: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + has-value@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" @@ -5394,6 +5614,18 @@ hex-color-regex@^1.1.0: resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== +history@^4.9.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" + integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== + dependencies: + "@babel/runtime" "^7.1.2" + loose-envify "^1.2.0" + resolve-pathname "^3.0.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + value-equal "^1.0.1" + hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" @@ -5403,6 +5635,13 @@ hmac-drbg@^1.0.1: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" +hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + hoopy@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" @@ -5672,6 +5911,13 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= + dependencies: + repeating "^2.0.0" + indent-string@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" @@ -5902,6 +6148,18 @@ is-extglob@^2.1.0, is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= +is-finite@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" + integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" @@ -6056,6 +6314,11 @@ is-typedarray@^1.0.0, is-typedarray@~1.0.0: resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" @@ -6073,6 +6336,11 @@ is-wsl@^2.1.1, is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -6576,6 +6844,11 @@ jest@26.6.0: import-local "^3.0.2" jest-cli "^26.6.0" +js-base64@^2.1.8: + version "2.6.4" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" + integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== + "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -6809,6 +7082,17 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + load-json-file@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" @@ -6909,7 +7193,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -"lodash@>=3.5 <5", lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.5: +"lodash@>=3.5 <5", lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.5, lodash@~4.17.10: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -6919,13 +7203,21 @@ loglevel@^1.6.8: resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== -loose-envify@^1.1.0, loose-envify@^1.4.0: +loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== dependencies: js-tokens "^3.0.0 || ^4.0.0" +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + lower-case@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" @@ -6986,6 +7278,11 @@ map-cache@^0.2.2: resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= + map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" @@ -7033,6 +7330,22 @@ memory-fs@^0.5.0: errno "^0.1.3" readable-stream "^2.0.1" +meow@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" @@ -7125,6 +7438,14 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== +mini-create-react-context@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz#072171561bfdc922da08a60c2197a497cc2d1d5e" + integrity sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ== + dependencies: + "@babel/runtime" "^7.12.1" + tiny-warning "^1.0.3" + mini-css-extract-plugin@0.11.3: version "0.11.3" resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.11.3.tgz#15b0910a7f32e62ffde4a7430cfefbd700724ea6" @@ -7145,14 +7466,14 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@3.0.4, minimatch@^3.0.4: +minimatch@3.0.4, minimatch@^3.0.4, minimatch@~3.0.2: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" -minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: +minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== @@ -7274,7 +7595,7 @@ multicast-dns@^6.0.1: dns-packet "^1.3.1" thunky "^1.0.2" -nan@^2.12.1: +nan@^2.12.1, nan@^2.13.2: version "2.14.2" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== @@ -7346,6 +7667,22 @@ node-forge@^0.10.0: resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== +node-gyp@^7.1.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-7.1.2.tgz#21a810aebb187120251c3bcec979af1587b188ae" + integrity sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ== + dependencies: + env-paths "^2.2.0" + glob "^7.1.4" + graceful-fs "^4.2.3" + nopt "^5.0.0" + npmlog "^4.1.2" + request "^2.88.2" + rimraf "^3.0.2" + semver "^7.3.2" + tar "^6.0.2" + which "^2.0.2" + node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" @@ -7402,7 +7739,36 @@ node-releases@^1.1.61, node-releases@^1.1.70: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.70.tgz#66e0ed0273aa65666d7fe78febe7634875426a08" integrity sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw== -normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: +node-sass@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-6.0.0.tgz#f30da3e858ad47bfd138bc0e0c6f924ed2f734af" + integrity sha512-GDzDmNgWNc9GNzTcSLTi6DU6mzSPupVJoStIi7cF3GjwSE9q1cVakbvAAVSt59vzUjV9JJoSZFKoo9krbjKd2g== + dependencies: + async-foreach "^0.1.3" + chalk "^1.1.1" + cross-spawn "^7.0.3" + gaze "^1.0.0" + get-stdin "^4.0.1" + glob "^7.0.3" + lodash "^4.17.15" + meow "^3.7.0" + mkdirp "^0.5.1" + nan "^2.13.2" + node-gyp "^7.1.0" + npmlog "^4.0.0" + request "^2.88.0" + sass-graph "2.2.5" + stdout-stream "^1.4.0" + "true-case-path" "^1.0.2" + +nopt@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" + integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== + dependencies: + abbrev "1" + +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== @@ -7458,6 +7824,16 @@ npm-run-path@^4.0.0: dependencies: path-key "^3.0.0" +npmlog@^4.0.0, npmlog@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + nth-check@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" @@ -7470,6 +7846,11 @@ num2fraction@^1.2.2: resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + nwsapi@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" @@ -7844,6 +8225,13 @@ path-dirname@^1.0.0: resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= + dependencies: + pinkie-promise "^2.0.0" + path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -7884,6 +8272,22 @@ path-to-regexp@0.1.7: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= +path-to-regexp@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== + dependencies: + isarray "0.0.1" + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + path-type@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" @@ -8681,6 +9085,11 @@ prepend-http@^1.0.0: resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= +prettier@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.0.tgz#b6a5bf1284026ae640f17f7ff5658a7567fc0d18" + integrity sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w== + pretty-bytes@^5.3.0: version "5.6.0" resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" @@ -8739,7 +9148,7 @@ prompts@2.4.0, prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.5" -prop-types@^15.7.2: +prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== @@ -8959,7 +9368,7 @@ react-error-overlay@^6.0.9: resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.9.tgz#3c743010c9359608c375ecd6bc76f35d93995b0a" integrity sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew== -react-is@^16.8.1: +react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -8969,11 +9378,52 @@ react-is@^17.0.1: resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.1.tgz#5b3531bd76a645a4c9fb6e693ed36419e3301339" integrity sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA== +react-redux@^7.2.4: + version "7.2.4" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.4.tgz#1ebb474032b72d806de2e0519cd07761e222e225" + integrity sha512-hOQ5eOSkEJEXdpIKbnRyl04LhaWabkDPV+Ix97wqQX3T3d2NQ8DUblNXXtNMavc7DpswyQM6xfaN4HQDKNY2JA== + dependencies: + "@babel/runtime" "^7.12.1" + "@types/react-redux" "^7.1.16" + hoist-non-react-statics "^3.3.2" + loose-envify "^1.4.0" + prop-types "^15.7.2" + react-is "^16.13.1" + react-refresh@^0.8.3: version "0.8.3" resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f" integrity sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg== +react-router-dom@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.2.0.tgz#9e65a4d0c45e13289e66c7b17c7e175d0ea15662" + integrity sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA== + dependencies: + "@babel/runtime" "^7.1.2" + history "^4.9.0" + loose-envify "^1.3.1" + prop-types "^15.6.2" + react-router "5.2.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-router@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.2.0.tgz#424e75641ca8747fbf76e5ecca69781aa37ea293" + integrity sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw== + dependencies: + "@babel/runtime" "^7.1.2" + history "^4.9.0" + hoist-non-react-statics "^3.1.0" + loose-envify "^1.3.1" + mini-create-react-context "^0.4.0" + path-to-regexp "^1.7.0" + prop-types "^15.6.2" + react-is "^16.6.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + react-scripts@4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-4.0.3.tgz#b1cafed7c3fa603e7628ba0f187787964cb5d345" @@ -9040,6 +9490,13 @@ react-scripts@4.0.3: optionalDependencies: fsevents "^2.1.3" +react-toastify@^7.0.4: + version "7.0.4" + resolved "https://registry.yarnpkg.com/react-toastify/-/react-toastify-7.0.4.tgz#7d0b743f2b96f65754264ca6eae31911a82378db" + integrity sha512-Rol7+Cn39hZp5hQ/k6CbMNE2CKYV9E5OQdC/hBLtIQU2xz7DdAm7xil4NITQTHR6zEbE5RVFbpgSwTD7xRGLeQ== + dependencies: + clsx "^1.1.1" + react@^17.0.2: version "17.0.2" resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" @@ -9048,6 +9505,14 @@ react@^17.0.2: loose-envify "^1.1.0" object-assign "^4.1.1" +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + read-pkg-up@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" @@ -9065,6 +9530,15 @@ read-pkg-up@^7.0.1: read-pkg "^5.2.0" type-fest "^0.8.1" +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + read-pkg@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" @@ -9084,7 +9558,7 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -9129,6 +9603,14 @@ recursive-readdir@2.2.2: dependencies: minimatch "3.0.4" +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + redent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" @@ -9137,6 +9619,23 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" +redux-devtools-extension@^2.13.9: + version "2.13.9" + resolved "https://registry.yarnpkg.com/redux-devtools-extension/-/redux-devtools-extension-2.13.9.tgz#6b764e8028b507adcb75a1cae790f71e6be08ae7" + integrity sha512-cNJ8Q/EtjhQaZ71c8I9+BPySIBVEKssbPpskBfsXqb8HJ002A3KRVHfeRzwRo6mGPqsm7XuHTqNSNeS1Khig0A== + +redux-thunk@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.3.0.tgz#51c2c19a185ed5187aaa9a2d08b666d0d6467622" + integrity sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw== + +redux@^4.0.0, redux@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.1.0.tgz#eb049679f2f523c379f1aff345c8612f294c88d4" + integrity sha512-uI2dQN43zqLWCt6B/BMGRMY6db7TTY4qeHHfGeKb3EOhmOKjU3KdWvNLJyqaHRksv/ErdNH7cFZWg9jXtewy4g== + dependencies: + "@babel/runtime" "^7.9.2" + regenerate-unicode-properties@^8.2.0: version "8.2.0" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" @@ -9247,6 +9746,13 @@ repeat-string@^1.6.1: resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= + dependencies: + is-finite "^1.0.0" + request-promise-core@1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" @@ -9263,7 +9769,7 @@ request-promise-native@^1.0.8: stealthy-require "^1.1.1" tough-cookie "^2.3.3" -request@^2.88.2: +request@^2.88.0, request@^2.88.2: version "2.88.2" resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== @@ -9338,6 +9844,11 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== +resolve-pathname@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" + integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== + resolve-url-loader@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-3.1.2.tgz#235e2c28e22e3e432ba7a5d4e305c59a58edfc08" @@ -9531,6 +10042,16 @@ sanitize.css@^10.0.0: resolved "https://registry.yarnpkg.com/sanitize.css/-/sanitize.css-10.0.0.tgz#b5cb2547e96d8629a60947544665243b1dc3657a" integrity sha512-vTxrZz4dX5W86M6oVWVdOVe72ZiPs41Oi7Z6Km4W5Turyz28mrXSJhhEBZoRtzJWIv3833WKVwLSDWWkEfupMg== +sass-graph@2.2.5: + version "2.2.5" + resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.5.tgz#a981c87446b8319d96dce0671e487879bd24c2e8" + integrity sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag== + dependencies: + glob "^7.0.0" + lodash "^4.0.0" + scss-tokenizer "^0.2.3" + yargs "^13.3.2" + sass-loader@^10.0.5: version "10.1.1" resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.1.1.tgz#4ddd5a3d7638e7949065dd6e9c7c04037f7e663d" @@ -9542,6 +10063,13 @@ sass-loader@^10.0.5: schema-utils "^3.0.0" semver "^7.3.2" +sass@^1.34.0: + version "1.34.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.34.0.tgz#e46d5932d8b0ecc4feb846d861f26a578f7f7172" + integrity sha512-rHEN0BscqjUYuomUEaqq3BMgsXqQfkcMVR7UhscsAVub0/spUrZGBMxQXFS2kfiDsPLZw5yuU9iJEFNC2x38Qw== + dependencies: + chokidar ">=3.0.0 <4.0.0" + sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" @@ -9589,6 +10117,14 @@ schema-utils@^3.0.0: ajv "^6.12.5" ajv-keywords "^3.5.2" +scss-tokenizer@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" + integrity sha1-jrBtualyMzOCTT9VMGQRSYR85dE= + dependencies: + js-base64 "^2.1.8" + source-map "^0.4.2" + select-hose@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" @@ -9684,7 +10220,7 @@ serve-static@1.14.1: parseurl "~1.3.3" send "0.17.1" -set-blocking@^2.0.0: +set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= @@ -9896,6 +10432,13 @@ source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, sourc resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +source-map@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + integrity sha1-66T12pwNyZneaAMti092FzZSA2s= + dependencies: + amdefine ">=0.0.4" + source-map@^0.5.0, source-map@^0.5.6: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" @@ -10031,6 +10574,13 @@ static-extend@^0.1.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= +stdout-stream@^1.4.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz#5ac174cdd5cd726104aa0c0b2bd83815d8d535de" + integrity sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA== + dependencies: + readable-stream "^2.0.1" + stealthy-require@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" @@ -10086,6 +10636,23 @@ string-natural-compare@^3.0.1: resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz#7a42d58474454963759e8e8b7ae63d71c1e7fdf4" integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw== +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2": + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + string-width@^3.0.0, string-width@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" @@ -10170,6 +10737,13 @@ strip-ansi@^3.0.0, strip-ansi@^3.0.1: dependencies: ansi-regex "^2.0.0" +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" @@ -10177,6 +10751,13 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= + dependencies: + is-utf8 "^0.2.0" + strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -10205,6 +10786,13 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= + dependencies: + get-stdin "^4.0.1" + strip-indent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" @@ -10234,6 +10822,11 @@ stylehacks@^4.0.0: postcss "^7.0.0" postcss-selector-parser "^3.0.0" +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -10433,6 +11026,16 @@ timsort@^0.3.0: resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= +tiny-invariant@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" + integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw== + +tiny-warning@^1.0.0, tiny-warning@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + tmpl@1.0.x: version "1.0.4" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" @@ -10509,6 +11112,18 @@ tr46@^2.0.2: dependencies: punycode "^2.1.1" +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= + +"true-case-path@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d" + integrity sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew== + dependencies: + glob "^7.1.2" + tryer@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" @@ -10850,6 +11465,11 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +value-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" + integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== + vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" @@ -11099,6 +11719,13 @@ which@^2.0.1, which@^2.0.2: dependencies: isexe "^2.0.0" +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"