¿Desea actualizaciones (infrecuentes) sobre nuevas fuentes del tipo de flecha?
? ¡Regístrese para el boletín de tipo flecha! ?
¡Sigue a @arrowtype en Instagram!
Obtenga más información sobre el espécimen web recursivo →

Recursive Sans & Mono es una familia de tipo variable creada para un mejor código y UI. Está inspirado en el script casual de script, pero está diseñado principalmente para satisfacer las necesidades de los entornos de programación e interfaces de aplicaciones.
En la programación, la "recursión" es cuando una función se llama a sí misma, utilizando su propia salida como una entrada para producir resultados potentes. Recursive Mono se usó como una herramienta para ayudar a construirlo: se usó para escribir scripts de Python para automatizar el trabajo de producción de tipo y generar imágenes de muestras, y se utilizó en HTML, CSS y JS para crear pruebas y prototipos basados en la web. A través de este uso activo, el mono recursivo fue diseñado para ser divertido de ver y profundamente útil para el trabajo durante todo el día.
Los glifos recursivos sin prestados de su mono principal, pero ajusta los anchos de muchos glifos clave para una legibilidad cómoda. Sus métricas son superplexidas : cada estilo ocupa exactamente el mismo espacio horizontal, en todos los estilos. En esta fuente variable de 3 ejes, esto permite transiciones fluidas entre peso, inclinación y "expresión" (informes de letras casuales), todo sin cambios de texto o reflujo de diseño. Esto no solo permite nuevas posibilidades interactivas en la interfaz de usuario, sino que también es una experiencia tipográfica de comprensión única y divertida.
Recursive está diseñado con un conjunto modificado de caracteres de Google Fonts Latin Expert, que incluye numerosos símbolos útiles para monedas y matemáticas (consulte las notas del conjunto de caracteres para obtener más detalles), además de soporte para los siguientes 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
Cuando está considerando usar una fuente, la licencia de fuente es una de las primeras cosas que debe buscar y leer. Describe cómo acepta usar las fuentes, y la licencia de fuentes es diferente entre los proyectos de diferentes tipos y las fundiciones de tipo.
El proyecto recursivo tiene licencia bajo la licencia SIL Open Font V1.1. Esta es una licencia de software gratuita que le permite usar el software de fuentes en un conjunto de condiciones. Consulte el texto completo de la licencia para obtener detalles sobre los permisos, condiciones y renuncias.
La manera fácil: abrir archivos de fuentes en el libro de fuentes y haga clic en "Instalar fuente".
La buena manera:
<yourusername>/Library/FontsHaga doble clic en el archivo TTF, luego seleccione "Instalar".
Para instalar muchos archivos de fuentes estáticas (estos pueden funcionar mejor en aplicaciones como Microsoft Word y PowerPoint):
static_fonts , luego a la carpeta mono o sans static_otf .Este es un gran tema, pero un par de buenas guías son de MDN y de CSS-Tricks.
En general, debe vincular en la fuente con @font-face , asegurándose de usar font-weight: 300 1000; Para especificar el rango de peso de la fuente:
@font-face {
font-family: 'Recursive';
src: url('path/to/font/<UPDATE_SPECIFIC_FONT_PATH>.woff2') format('woff2-variations');
font-weight: 300 1000;
}
¡Entonces, puede usar la fuente con font-weight y font-variation-settings !
Notas:
MONO y CASL son ejes "no registrados" (actualmente no en la lista oficial de ejes y especificaciones de variación de Microsoft), por lo que estas etiquetas deben usarse en todas las CAP y controlarse a través de font-variation-settings .font-style de la propiedad para controlar los ejes slnt y CRSV , pero estos tienen algunos problemas de soporte de navegador (a partir de octubre de 2019, pero las herramientas están evolucionando rápidamente para soportar mejor las fuentes variables, por lo que esto mejorará con el tiempo!) Por ahora, estos funcionan mejor en font-variation-settings .font-variation-settings : lea más sobre esta técnica en el fantástico tutorial de Pixel Ambacht. Hay dos formas principales de usar los editores de código recursivos:
Instale las fuentes Rec Mono (que se encuentran en la carpeta "Recursive_code" de las descargas de lanzamiento). Estos tienen ligaduras de código y varios conjuntos estilísticos previamente aplicados para que funcionarán de forma predeterminada en la mayoría de los entornos y aplicaciones de código. Estos también se nombran y configuran de una manera que permita su uso en temas de código que utilizan estilos de cursiva y en negrita. Si desea configurar características específicas en Fuentes Rec Mono (como un 0 o g de G de un solo piso), consulte la configuración del código recursivo.
Estas fuentes están construidas de una manera más tradicional que las fuentes de "código" anteriores, por lo que pueden dejarlo un poco mejor en algunos contextos. Sin embargo, hay pros y contras: las ligaduras de código funcionan mejor en las fuentes "código", en muchas aplicaciones solo monoespaciales. En Mac antes de MacOS 11, estos no funcionan en temas con estilos en cursiva; consulte anteriormente las fuentes de "código" que sí lo hacen. Y, las fuentes del "código" le permiten un poco más de personalización, ¡si lo desea!
Para usar las fuentes estándar de la pantalla de mazdo, instale las fuentes Recursive Mono de escritorio (que se encuentran en la carpeta "recursiva_desktop" de las descargas de lanzamiento). Luego, activelos y configure las funciones de OpenType si su editor de códigos lo permite. Siguen las instrucciones para tres editores.
En resumen, abra la configuración del editor y configure la familia de fuentes. Estos apellidos se acortan porque los nombres de fuentes largos pueden causar errores en algunos entornos. Las principales abreviaturas son las siguientes:
Mn significa mono (monoespacio/ancho fijo)Sn significa SAN (proporcional/ancho natural)Csl significa casualLnr significa linealSt significa estático (a diferencia de la variable, como la fuente variable recursiva completa) Por lo tanto, confiará a su editor para usar Recursive Mn Csl St o Recursive Mn Lnr St .
En el entorno, busque Font Family , luego especifique la familia que desea usar.
Para el Regular Regular Mono Casual recursivo:
"Recursive Mn Csl St", Menlo, "Apple Color Emoji", monospace
Para el regular lineal mono recursivo:
"Recursive Mn Lnr St", Menlo, "Apple Color Emoji", monospace
Luego, si lo desea, puede activar las funciones de OpenType buscando en la configuración de fontLigatures , luego editando esto en setting.json así:
"editor.fontLigatures" : " 'ss01','ss05','dlig' " (Lo anterior le daría un 6 y 9 simplificado, una a de un solo piso y activar ligaduras de código).
En la barra de menú, vaya a Atom -> Stylesheet y agregue lo siguiente:
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 obtener la familia lineal.
Vaya a Sublime Text -> Preferences -> Settings y configure font_face en el nombre PostScript específico del estilo que desea usar.
Para el Regular Regular Mono Casual recursivo:
"font_face" : " Recursive Mn Csl St " ,Para el regular lineal mono recursivo:
"font_face" : " Recursive Mn Lnr St " , Para controlar las ligaduras del código u otras características de OpenType, establezca las font_options , como así:
"font_options" : [ " ss01 " , " ss05 " , " dlig " ],Entonces, la configuración completa puede verse algo así:
{
"font_face" : " Recursive Mn Lnr St " ,
"font_size" : 24 ,
"theme" : " Adaptive.sublime-theme "
}Recursivo tiene los siguientes ejes:
| Eje | Etiqueta | Rango | Por defecto | Descripción |
|---|---|---|---|---|
| Monos | MONO | 0 a 1 | 0 | Sans (ancho natural) a mono (ancho fijo) |
| Casual | CASL | 0 a 1 | 0 | Lineal a casual |
| Peso | wght | 300 a 1000 | 300 | Luz para extrable. Se puede definir con la propiedad habitual de peso de la fuente. |
| Inclinación | slnt | 0 a -15 | 0 | Erguido (0 °) a inclinado (aproximadamente 15 °) |
| Cursivo | CRSV | 0, 0.5 o 1 | 0.5 | Siempre romano (0), auto (0.5) o siempre cursivo (1) |
Definiciones del eje, recursivo
MONO monoespacio - 0 a 1. Ajusta los anchos del glifo de proporcional o "sans" (0) al ancho fijo o "mono" (1).
Uso recomendado: en general, el diseño proporcional es más legible en texto y UI, mientras que el diseño monoespacial es más apropiado para el código y el texto en el que la desambiguación de la letra es especialmente crítica (por ejemplo, contraseñas, números de identificación, datos tabulares, etc.).
CASL informal - 0 a 1. Ajusta el estilo expresivo o el "género" de los glifos. En recursivo, esto va de lineal (0) a casual (1).
Uso recomendado: el estilo lineal comparte una estructura similar a las fuentes clasificadas como lineales , fusionando aspectos de Sans humanista con formas de letras racionalizadas, compactas y planas. Esta estructura regular y familiar lo hace apropiado para el texto de forma larga que requiere enfoque (párrafos por ejemplo, documentos de código completo y titulares fuertes). El estilo casual está inspirado en una señal informal de un solo accidente cerebrovascular, pero se dibuja para pequeños tamaños. Es más útil en el texto de forma más corta donde se desea un tono cálido y acogedor (por ejemplo, titulares de la publicación de blog, señalización de almacenamiento y terminales de computadora).
Peso wght - 300 a 1000. El grosor general de las letras y la oscuridad del texto compuesta con ellas. En particular, en recursivo, el eje de peso no afecta el ancho del glifo. Un peso audaz toma la misma cantidad de espacio que un peso ligero, incluso en estilos proporcionales del eje MONO .
Uso recomendado: las diferencias de peso pueden proporcionar énfasis en el texto, mostrar la interacción del usuario o ajustar el tono de comunicación. Para el texto ligero sobre fondos oscuros, 400 ("regular") tiende a ser apropiado para el texto y el código. Para el texto oscuro sobre un fondo claro, puede ser beneficioso ajustar el peso hacia arriba a 500 ("medio").
¿Por qué no es un eje de grado? Ver número #365
Slant slnt -0 a -15. La "inclinación hacia adelante" de las letras. Nota: -15 (negativo 15) corresponde a una inclinación de 15 ° en el sentido de las agujas del reloj, debido a las raíces del diseño del tipo en la geometría. Si el eje en cursiva está en su valor predeterminado, pasar una inclinación de -13.99 activará letras "cursivas", convirtiéndolas en formas más escritas en mano como la "historia única" a y g
Uso recomendado: use la inclinación como una forma secundaria de enfatizar el texto o variar el tono tipográfico. En el texto, puede ser útil usar una inclinación parcial de alrededor de -9, mientras que en los tamaños de pantalla, puede esperar los contornos más precisos en 0 o -15. También puede animar de 0 a -13 sin formas de letras o anchos de glifo que cambian, lo cual es ideal para cosas como enlaces o botones rondados.
CRSV cursivo - 0, 0.5 o 1. Controla la sustitución de formas cursivas a lo largo del eje inclinado. "Off" (0) mantiene formas de letras romanas, como una "historia doble" a y g , "Auto" (0.5) permite una sustitución cursiva, y "On" (1) afirma formas cursivas incluso en texto vertical con una inclinación de 0.
Uso recomendado: use cursivo como una forma terciaria de enfatizar el texto, o como una forma de tener más control sobre el texto animado (por ejemplo, un hipervínculo que se inclina en la interacción del usuario puede ser diseñado con cursiva 0 o 1 para evitar los cambios abruptos de la sustitución del glifo).
En general, recursivo está destinado a un uso de tamaño pequeño a mediano, particularmente en la pantalla. Sin embargo, es útil comprender qué rangos estilísticos funcionan mejor en qué contextos. Vale la pena saber algunas pautas:
| Rango de estilo | Tamaño recomendado | Caso de uso recomendado |
|---|---|---|
| Casual 0 (lineal) , peso 300–800 (luz -extracción) | 8px a 72px | Uso general (especialmente para texto más largo) |
| Informal 1 (informal) , peso 300–800 (luz -extracción) | 14px a 72px | Uso general (más personalidad) |
| Pesos 801–900 (Black -Extrablack) | 32px a 144px | Titulares, tipografía de exhibición |
| Valores intermedios de casual y inclinado | 10px a 40px | Bueno en texto, pero puede que no se vea tan bien en los tamaños de pantalla |
Cosas a tener en cuenta:
CASL y slnt . Si te apegas a las instancias nombradas en las aplicaciones de diseño (por ejemplo, Mono Casual Bold Italic , etc.), esto se maneja automáticamente.Recursivo se construye con una serie de características de OpenType que simplifican el control de algunas funciones tipográficas prácticas.

Para construir, configure el entorno virtual
virtualenv -p python3 venv
Luego activarlo:
source venv/bin/activate
Luego instale los requisitos:
pip install -U -r requirements.txt
También:
pip install git+https://github.com/LettError/DesignspaceProblems
Las fuentes están construidas con el script mastering/build.py . Este script puede construir todo ( python build.py --all ), o un subconjunto de las fuentes. Para ver todas las opciones, escriba python build.py -h para ver todas las opciones. El proceso de construcción recomendado se detalla a continuación.
NOTA: Hay subcripts para simplemente preparar los archivos de origen ( mastering/prep_fonts.py ), construir los archivos de origen ( mastering/build_files.py ), generar la fuente variable ( mastering/build_variable.py ) y generar las fuentes estáticas ( build_static.py ). Estos scripts pueden ser útiles si solo desea hacer una cosa a los archivos de compilación. Cada uno toma un conjunto de argumentos de línea de comando, todos documentados (escriben python <script_name> -h ) para ver la documentación.
Primero, Fuentes de preparación
Antes de comenzar, cambie su directorio de trabajo a mastering .
cd mastering
python build.py --files es el primer paso. Esto generará todos los archivos necesarios para construir las fuentes variables y estáticas. Es probable que desee darle a la fuente un número de versión con este comando ( python build.py --version 1.085 --files ). Para preparar solo archivos para la fuente variable, use python build.py --varfiles , o para preparar solo archivos para las fuentes estáticas, use python build.py --statfiles .
Después de que se han generado los archivos (tenga en cuenta que las instancias estáticas tardan un poco en generar), deberá ver el archivo mastering/build/static/CFF/checkoutlines.txt . Este es el informe (editado para eliminar los problemas que no necesitan atención) de las líneas de pago. Los problemas encontrados en este informe deben limpiarse en los ovnis estáticos. Muchos problemas se deben a la eliminación de superposición. Nada es perfecto, incluidos los algoritmos de eliminación de superposición.
Para construir la fuente variable
Para construir la fuente variable, ejecute:
# 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 las fuentes estáticas
Para construir todas las fuentes estáticas, ejecute:
# 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 las fuentes
Si desea construir todas las fuentes, fuentes y versiones Woff2 de todas las fuentes que funcionan:
# activate venv, install dependencies, cd mastering
python build.py --all --version 1.085 # (replace version number)Obtener notificaciones (solo Mac)
Agregue la opción --pync ( -p para abreviar) a la llamada de script para obtener notificaciones MAC, lo que puede ser útil si está trabajando en otras tareas mientras se ejecuta una compilación.
# activate venv, install dependencies, cd mastering
python build.py --all --pync --version 1.085 # (replace version number)Primero, construya fuentes con el flujo de masterización arriba. Entonces:
# 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 Luego, copie la última fuente variable en su repositorio de configuración de código recursivo local para crear fuentes de código actualizadas. Copielos en las fonts/ArrowType-Recursive-1.XXX/Recursive_Code .
Finalmente, vaya a la página de lanzamientos del repositorio para hacer una nueva.
Este proyecto ha incluido una gran cantidad de investigación (contenida en docs/ ), y contiene muchas herramientas pequeñas (contenidas en src/00-recursive-scripts-for-robofont que pueden ayudarlo si está diseñando fuentes variables con OVNI en ROBOFONT.
Navegue a su carpeta RoboFont Scripts en un terminal.
cd , luego copie Paste o Drag-N-Dop la carpeta Scripts para obtener su FilePath completo. Presione return/enter. Haga un enlace simbólico o "enlace simbólico" a la carpeta de scripts de proyectos recursivos, src/00-recursive-scripts-for-robofont
ln -ssrc/00-recursive-scripts-for-robofont desde el buscador para obtener su ruta completa. Presione return/enter.ls para enumerar archivos. Debería ver src/00-recursive-scripts-for-robofont como uno de los elementos enumerados.Entonces, esto se verá como:
ln -s ~/FOLDER_PATH/robofont-scripts ~/FOLDER_PATH/recursive/src/00-recursive-scripts-for-robofont
Ahora, puede ejecutar los scripts de proyecto recursivo directamente desde el menú Scripts, o abriéndolos en la ventana de secuencias de comandos.
Ver contribuyente. MD para políticas en torno a contribuir al proyecto.