Atualizações de querer (frequentes) sobre novas fontes do tipo de seta?
? Inscreva -se no boletim informativo do tipo Arrow! ?
Siga @arrowtype no Instagram!
Saiba mais sobre a amostra recursiva da web →

O Recursive Sans & Mono é uma família de tipos de variável criada para melhor código e interface do usuário. É inspirado na sinalização do script casual, mas projetado principalmente para atender às necessidades dos ambientes de programação e interfaces de aplicativos.
Na programação, a “recursão” é quando uma função se chama, usando sua própria saída como entrada para produzir resultados poderosos. O mono recursivo foi usado como uma ferramenta para ajudar a se construir: foi usado para escrever scripts Python para automatizar o tipo de produção de tipo e gerar imagens de amostras, e foi usado em HTML, CSS e JS para criar provas e protótipos baseados na Web. Com esse uso ativo, o mono recursivo foi criado para ser divertido de se olhar e também profundamente útil para o trabalho durante todo o dia.
O recursivo sem emprestar os glifos de seu mono pai, mas ajusta as larguras de muitos glifos -chave para uma legibilidade confortável. Suas métricas são superplexadas - todo estilo ocupa exatamente o mesmo espaço horizontal, em todos os estilos. Nesta fonte variável de 3 eixos, isso permite transições de fluido entre peso, inclinação e "expressão" (formas de letra casuais a rigorosas), tudo sem mudanças de texto ou reflexão de layout. Isso não apenas permite novas possibilidades interativas na interface do usuário, mas também contribui para uma experiência de digitação divertida e divertida.
O Recursive foi projetado com um conjunto de personagens especialistas em latim do Google Modificado, incluindo inúmeros símbolos úteis para moedas e matemática (consulte o conjunto de caracteres Notas para obter mais detalhes), além de suporte para os seguintes idiomas:
Abenaki, Afaan Oromo, Afar, Afrikaans, Albanian, Alsatian, Amis, Anuta, Aragonese, Aranese, Aromanian, Arrernte, Arvanitic (Latin), Asturian, Atayal, Aymara, Azerbaijani, Bashkir (Latin), Basque, Belarusian (Latin), Bemba, Bikol, Bislama, Bosnian, Breton, Cape Verdean Creole, Catalan, Cebuano, Chamorro, Chavacano, Chichewa, Chickasaw, Cimbrian, Cofán, Cornish, Corsican, Creek, Crimean Tatar (Latin), Croatian, Czech, Danish, Dawan, Delaware, Dholuo, Drehu, Dutch, English, Esperanto, Estonian, Faroese, Fijian, Filipino, Finnish, Folkspraak, French, Frisian, Friulian, Gagauz (Latin), Galician, Ganda, Genoese, German, Gikuyu, Gooniyandi, Greenlandic (Kalaallisut), Guadeloupean Creole, Gwich’in, Haitian Creole, Hän, Hawaiian, Hiligaynon, Hopi, Hotcąk (Latin), Hungarian, Icelandic, Ido, Igbo, Ilocano, Indonesian, Interglossa, Interlingua, Irish, Istro-Romanian, Italian, Jamaican, Javanese (Latin), Jèrriais, Kaingang, Kala Lagaw Ya, Kapampangan (Latin), Kaqchikel, Karakalpak (Latin), Karelian (Latin), Kashubian, Kikongo, Kinyarwanda, Kiribati, Kirundi, Klingon, Kurdish (Latin), Ladin, Latin, Latino sine Flexione, Latvian, Lithuanian, Lojban, Lombard, Low Saxon, Luxembourgish, Maasai, Makhuwa, Malay, Maltese, Manx, Māori, Marquesan, Megleno-Romanian, Meriam Mir, Mirandese, Mohawk, Moldovan, Montagnais, Montenegrin, Murrinh-Patha, Nagamese Creole, Nahuatl, Ndebele, Neapolitan, Ngiyambaa, Niuean, Noongar, Norwegian, Novial, Occidental, Occitan, Old Icelandic, Old Norse, Onĕipŏt, Oshiwambo, Ossetian (Latin), Palauan, Papiamento, Piedmontese, Polish, Portuguese, Potawatomi, Q’eqchi’, Quechua, Rarotongan, Romanian, Romansh, Rotokas, Sami (Inari Sami), Sami (Lule Sami), Sami (Northern Sami), Sami (Southern Sami), Samoan, Sango, Saramaccan, Sardinian, Scottish Gaelic, Serbian (Latin), Seri, Seychellois Creole, Shawnee, Shona, Sicilian, Silesian, Slovak, Slovenian, Slovio (Latin), Somali, Sorbian (Lower Sorbian), Sorbian (Upper Sorbian), Sotho (Northern), Sotho (Southern), Spanish, Sranan, Sundanese (Latin), Swahili, Swazi, Swedish, Tagalog, Tahitian, Tetum, Tok Pisin, Tokelauan, Tongan, Tshiluba, Tsonga, Tswana, Tumbuka, Turkish, Turkmen (Latin), Tuvaluan, Tzotzil, Uzbek (Latin), Venetian, Vepsian, Vietnamese, Volapük, Võro, Wallisian, Walloon, Waray-Waray, Warlpiri, Wayuu, Welsh, Wik-Mungkan, Wiradjuri, Wolof, Xavante, Xhosa, Yapese, Yindjibarndi, Zapotec, Zarma, Zazaki, Zulu, Zuni
Quando você está pensando em usar uma fonte, a licença de fonte é uma das primeiras coisas que você deve procurar e ler. Ele descreve como você concorda em usar as fontes, e o licenciamento de fontes é diferente entre diferentes projetos de tipos e fundições de tipo.
O projeto recursivo está licenciado sob a licença de fonte SIL Open v1.1. Esta é uma licença de software livre que permite que você use o software de fonte em um conjunto de condições. Consulte o texto completo da licença para obter detalhes sobre as permissões, condições e isenções de responsabilidade.
A maneira mais fácil: abra arquivos de fonte no livro de fontes e clique em "Instalar font".
A boa maneira:
<yourusername>/Library/FontsClique duas vezes no arquivo TTF e selecione "Instalar".
Para instalar muitos arquivos de fonte estática (eles podem funcionar melhor em aplicativos como Microsoft Word e PowerPoint):
static_fonts e depois na pasta mono ou sem static_otf .Este é um grande tópico, mas alguns bons guias são da MDN e do CSS-Tricks.
Em geral, você deve vincular a fonte ao @font-face , certificando-se de usar font-weight: 300 1000; Para especificar a faixa de peso da fonte:
@font-face {
font-family: 'Recursive';
src: url('path/to/font/<UPDATE_SPECIFIC_FONT_PATH>.woff2') format('woff2-variations');
font-weight: 300 1000;
}
Em seguida, você pode usar a fonte com font-weight e font-variation-settings !
Notas:
MONO e CASL são eixos "não registrados" (atualmente não na lista oficial da Microsoft de eixos e especificações de variação); portanto, essas tags devem ser usadas em todas as camadas e controladas por meio de font-variation-settings .font-style da propriedade para controlar os eixos slnt e CRSV , mas eles têm alguns problemas de suporte ao navegador (a partir de outubro de 2019, mas as ferramentas estão evoluindo rapidamente para apoiar melhor as fontes variáveis, para que isso melhore com o tempo!) Por enquanto, esse trabalho é melhor em font-variation-settings .font-variation-settings -leia mais sobre essa técnica no tutorial fantástico de Pixel Ambacht. Existem duas maneiras principais de usar recursivo nos editores de código:
Instale as fontes Rec Mono (encontradas na pasta "recursive_code" de downloads de lançamento). Eles possuem ligantes de código e vários conjuntos estilísticos pré-aplicados, para que funcionem por padrão na maioria dos ambientes e aplicativos de código. Eles também são nomeados e configurados de uma maneira que permita seu uso em temas de código que utilizam estilos Itálico e em negrito. Se você deseja configurar recursos específicos em fontes Rec Mono (como um 0 ou um g de um andar), consulte Config de código recursivo.
Essas fontes são construídas de uma maneira mais tradicional do que as fontes de "código" acima, para que possam se tornar um pouco melhores em alguns contextos. No entanto, existem prós e contras: as ligaduras de código funcionam melhor nas fontes "código", em muitos aplicativos somente monoespacial. No Mac antes do MacOS 11, eles não funcionam em temas com estilos itálicos - veja acima para obter fontes de "código". E as fontes "código" permitem um pouco mais de personalização, se você quiser!
Para usar as fontes padrão do decktop, instale as fontes Recursive Mono da área de trabalho (encontradas na pasta "recursive_desktop" de downloads de liberação). Em seguida, ative -os e defina os recursos do OpenType se o seu editor de código permitir isso. Instruções para três editores seguem.
Em resumo, abra as configurações do editor e defina a família de fontes. Esses nomes de família são reduzidos porque os nomes de fontes longos podem causar erros em alguns ambientes. As principais abreviações são as seguintes:
Mn significa mono (monoespácia/largura fixa)Sn significa semCsl significa casualLnr significa linearSt significa estático (em oposição à variável, como a fonte variável recursiva completa) Portanto, você estará definindo seu editor para usar Recursive Mn Csl St ou Recursive Mn Lnr St .
Nas configurações, pesquise Font Family e especifique a família que você deseja usar.
Para regularmente mono casual mono:
"Recursive Mn Csl St", Menlo, "Apple Color Emoji", monospace
Para regularmente mono linear Recursive:
"Recursive Mn Lnr St", Menlo, "Apple Color Emoji", monospace
Então, se você quiser, você pode ativar os recursos do OpenType pesquisando nas configurações em busca de fontLigatures e editando isso em Settings.json como este:
"editor.fontLigatures" : " 'ss01','ss05','dlig' " (O exposto acima lhe daria um simplificado 6 e 9 , um andar a e ativar as ligaduras de código.)
Na barra de menus, vá para Atom -> Stylesheet e adicione o seguinte:
atom-text-editor {
font-family : 'Recursive Mn Csl St' ; /* This sets the font family*/
font-feature-settings : "ss01" , "ss05" , "dlig" ; /* This sets OpenType features, if you want to set them. */
} Use font-family: 'Recursive Mn Lnr St'; Para conseguir a família linear.
Vá para Sublime Text -> Preferences -> Settings e defina font_face no nome do PostScript específico do estilo que você deseja usar.
Para regularmente mono casual mono:
"font_face" : " Recursive Mn Csl St " ,Para regularmente mono linear Recursive:
"font_face" : " Recursive Mn Lnr St " , Para controlar as ligantes de código ou outros recursos do OpenType, defina as font_options , como assim:
"font_options" : [ " ss01 " , " ss05 " , " dlig " ],Então, as configurações completas podem parecer algo assim:
{
"font_face" : " Recursive Mn Lnr St " ,
"font_size" : 24 ,
"theme" : " Adaptive.sublime-theme "
}Recursive tem os seguintes eixos:
| Eixo | Marcação | Faixa | Padrão | Descrição |
|---|---|---|---|---|
| Monospácia | MONO | 0 a 1 | 0 | Sans (largura natural) para mono (largura fixa) |
| Casual | CASL | 0 a 1 | 0 | Linear a casual |
| Peso | wght | 300 a 1000 | 300 | Luz para extrablack. Pode ser definido com a propriedade usual do peso da fonte. |
| Inclinação | slnt | 0 a -15 | 0 | Vertical (0 °) para inclinado (cerca de 15 °) |
| Cursivo | CRSV | 0, 0,5 ou 1 | 0,5 | Sempre romano (0), automático (0,5) ou sempre cursivo (1) |
Definições do eixo, recursivo
Monospace MONO - 0 a 1. Ajusta as larguras do glifo de proporcional ou "sans" (0) para largura fixa ou "mono" (1).
Uso recomendado: Em geral, o design proporcional é mais legível no texto e na interface do usuário, enquanto o design do monoespácio é mais apropriado para código e texto em que a desambiguação da carta é especialmente crítica (por exemplo, senhas, números de identificação, dados tabulares etc.).
CASL casual - 0 a 1. Ajusta o estilo expressivo ou "gênero" dos glifos. Em Recursive, isso passa de linear (0) a casual (1).
Uso recomendado: O estilo linear compartilha uma estrutura semelhante às fontes classificadas como linear , mesclando aspectos do humanista sem formas de letra racionalizadas, compactas e de lado plano. Essa estrutura regular e regular o torna apropriado para texto de formato longo que requer foco (por exemplo, parágrafos, documentos completos de código e manchetes de socorro). O estilo casual é inspirado em sinalização casual com um único golpe, mas desenhado para tamanhos pequenos. É mais útil em um texto mais curto, onde é desejado um tom caloroso e convidativo (por exemplo, manchetes da postagem do blog, sinalização da loja e terminais de computador).
Peso wght - 300 a 1000. A espessura geral das letras e a escuridão do texto composta com elas. Notavelmente, em recursivo, o eixo de peso não afeta a largura do glifo. Um peso ousado leva a mesma quantidade de espaço que um peso leve, mesmo em estilos proporcionais do eixo MONO .
Uso recomendado: as diferenças de peso podem fornecer ênfase no texto, mostrar interação do usuário ou ajustar o tom da comunicação. Para texto claro sobre fundos escuros, 400 ("regular") tende a ser apropriado para texto e código. Para um texto escuro em um fundo claro, pode ser benéfico ajustar o peso para cima para 500 ("médio").
Por que não é um eixo de nota? Veja a edição #365
slnt inclinado -0 a -15. O "para a frente magro" de letras. NOTA: -15 (negativo 15) corresponde a uma inclinação de 15 ° no sentido horário, devido às raízes do tipo de design na geometria. Se o eixo itálico estiver em seu valor padrão, passar por uma inclinação de -13.99 ativará letras "cursivas", convertendo -as em formas mais escritas, como o simplificado, "história única" a e g .
Uso recomendado: use inclinação como uma maneira secundária de enfatizar o texto ou variar o tom tipográfico. No texto, pode ser útil usar uma inclinação parcial de -9, enquanto nos tamanhos de exibição, você pode esperar os contornos mais precisos em 0 ou -15. Você também pode animar de 0 a -13 sem formas de letra ou alterações de glifos, o que é ótimo para coisas como links ou botões pairados.
CRSV cursivo - 0, 0,5 ou 1. Controla a substituição de formas cursivas ao longo do eixo inclinado. "Off" (0) mantém formas de letra romanas como um "Double Story" a e g , "Auto" (0,5) permite substituição cursiva, e "on" (1) afirma formas cursivas, mesmo em texto vertical com uma inclinação de 0.
Uso recomendado: Use cursivo como uma maneira terciária de enfatizar o texto ou uma maneira de ter mais controle sobre o texto animado (por exemplo, um hiperlink que se inclina à interação do usuário pode ter um estilo com 0 ou 1 cursivo para evitar as mudanças abruptas da substituição do glifo).
Em geral, o recursivo destina-se ao uso de tamanho pequeno a médio, principalmente na tela. No entanto, é útil entender quais faixas estilísticas funcionam melhor em quais contextos. Algumas diretrizes que valem a pena saber:
| Faixa de estilo | Tamanho recomendado | Caso de uso recomendado |
|---|---|---|
| Casual 0 (linear) , peso 300-800 (luz -luz) | 8px a 72px | Uso geral (especialmente para texto mais longo) |
| Casual 1 (casual) , peso 300-800 (luz -luz) | 14px a 72px | Uso geral (mais personalidade) |
| Pesos 801–900 (preto -extraclack) | 32px a 144px | Manchetes, exibir tipografia |
| Valores intermediários de casual e inclinado | 10px a 40px | Bom texto, mas pode não parecer tão bom em tamanhos de exibição |
Coisas a serem cientes:
CASL e slnt . Se você seguir instâncias nomeadas em aplicativos de design (por exemplo, Mono Casual Bold Italic , etc.), isso é tratado para você automaticamente.O recursivo é construído com vários recursos do OpenType que simplificam o controle de alguns recursos tipográficos úteis.

Para construir, configure o ambiente virtual
virtualenv -p python3 venv
Em seguida, ative -o:
source venv/bin/activate
Em seguida, instale requisitos:
pip install -U -r requirements.txt
Também:
pip install git+https://github.com/LettError/DesignspaceProblems
As fontes são construídas com o script mastering/build.py . Este script pode construir tudo ( python build.py --all ) ou um subconjunto das fontes. Para visualizar todas as opções, digite python build.py -h para ver todas as opções. O processo de construção recomendado é detalhado abaixo.
NOTA: Existem sub-scripts para apenas preparar os arquivos de origem ( mastering/prep_fonts.py ), criando os arquivos de origem ( mastering/build_files.py ), gerando a fonte variável ( mastering/build_variable.py ) e gerando as fontes estáticas ( build_static.py ). Esses scripts podem ser úteis se você quiser apenas fazer uma coisa nos arquivos de construção. Cada um recebe um conjunto de argumentos da linha de comando, todos documentados (tipo python <script_name> -h ) para visualizar a documentação.
Primeiro, fontes de preparação
Antes de começar, mude seu diretório de trabalho para mastering .
cd mastering
python build.py --files é o primeiro passo. Isso gerará todos os arquivos necessários para criar as fontes variáveis e estáticas. Você provavelmente desejará dar à fonte um número de versão com este comando ( python build.py --version 1.085 --files ). Para preparar apenas arquivos para a fonte variável, use python build.py --varfiles ou para preparar apenas arquivos para as fontes estáticas, use python build.py --statfiles .
Depois que os arquivos forem gerados (observe que as instâncias estáticas levam um pouco de tempo para gerar), convém examinar o arquivo mastering/build/static/CFF/checkoutlines.txt . Este é o relatório (editado para remover problemas que não precisam de atenção) do CheckOutLinesufo. Os problemas encontrados neste relatório devem ser limpos nos OVNs estáticos. Muitos problemas são devidos à remoção de sobreposição. Nada é perfeito, os algoritmos de remoção de sobreposição incluídos.
Para construir a fonte variável
Para construir a fonte variável, execute:
# activate venv, install dependencies, cd mastering
version=1.085 # (replace version number)
python build.py --varfiles --version $version
python build.py --variable --version $versionPara construir as fontes estáticas
Para construir todas as fontes estáticas, execute:
# activate venv, install dependencies, cd mastering
version=1.085 # (replace version number)
python build.py --statfiles --version $version
python build.py --static --version $versionPara construir todas as fontes
Se você deseja construir todas as fontes, fontes e versões Woff2 de todas as fontes executadas:
# activate venv, install dependencies, cd mastering
python build.py --all --version 1.085 # (replace version number)Obtenha notificações (somente Mac)
Adicionar opção --pync ( -p para abreviar) à chamada de script para obter notificações do MAC, o que pode ser útil se você estiver trabalhando em outras tarefas enquanto uma compilação é executada.
# activate venv, install dependencies, cd mastering
python build.py --all --pync --version 1.085 # (replace version number)Primeiro, construa fontes com o fluxo de masterização acima. Então:
# navigate to the root directory of the project, then...
# update to latest font build directory
fontDir= " fonts_1.085 "
src/build-scripts/make-release/00-prep-release.sh $fontDir Em seguida, copie a fonte de variável mais recente no seu repositório de configuração de código recursivo local para criar fontes de código atualizadas. Copie-os nas recém-fabricadas fonts/ArrowType-Recursive-1.XXX/Recursive_Code .
Por fim, vá à página de lançamentos do repo para fazer uma nova.
Este projeto incluiu uma grande quantidade de pesquisa (contida em docs/ ) e contém muitas pequenas ferramentas (contidas em src/00-recursive-scripts-for-robofont que podem ajudá-lo se você estiver projetando fontes variáveis com OVNIs em Robofont.
Navegue para a pasta Robofont Scripts em um terminal.
cd , depois copie-se ou arraste-se a pasta Scripts para obter seu FilePath completo. Pressionar retorno/enter. Faça um link simbólico ou "link simulado" para a pasta Recursive Project Scripts, src/00-recursive-scripts-for-robofont
ln -ssrc/00-recursive-scripts-for-robofont do Finder para obter seu caminho completo. Pressionar retorno/enter.ls para listar arquivos. Você deve ver src/00-recursive-scripts-for-robofont como um dos itens listados.Então, isso vai parecer algo como:
ln -s ~/FOLDER_PATH/robofont-scripts ~/FOLDER_PATH/recursive/src/00-recursive-scripts-for-robofont
Agora, você pode executar os scripts do projeto recursivo diretamente no menu Scripts ou abrindo -os na janela de script.
Consulte Contribuindo.md para políticas contribuindo para o projeto.