Existe uma maneira de definir a fonte monoespaçada * padrão * no Safari?

11

Eu tenho um aplicativo Web que usa a fonte monoespaçada padrão do navegador. É configurado dessa maneira para que o usuário possa escolher por si próprio. No Chrome, isso funciona bem, pois é fácil definir as fontes padrão, mas no Safari, eles removeram a opção.

Existe alguma maneira de os usuários definirem fontes padrão no Safari?

Carl Smith
fonte

Respostas:

2

No Safari 12, todas as opções para isso foram removidas:

  • O painel Aparência desapareceu (por muito tempo)
  • As defaultschaves não são mais respeitadas
  • As @font-facedefinições de CSS são limitadas a uma lista de permissões incorporada delocal() , ignorando outras fontes instaladas no sistema, que fazem parte de um amplo pacote de medidas anti-impressão digital

Em conjunto, isso significa que não há como alterar os padrões do Times para serif, Helvetica para sans-serife Courier paramonospace .


A única coisa que você ainda pode fazer é criar uma folha de estilo do usuário para estilizar vários elementos diretamente. Por exemplo, você pode alterar a família de fontes padrão de serifpara sans-serif:

body { font-family: sans-serif }

Ou ainda pode nomear fontes específicas que não são do sistema instaladas localmente:

body { font-family: 'Open Sans' }

Infelizmente, embora isso funcione razoavelmente bem para alterar a fonte do documento padrão, é complicado usar a mesma abordagem para mudar o estilo de todos os elementos que usam como padrão uma fonte monoespaçada. Não tenho certeza se o CSS pode emular completamente o comportamento padrão desses elementos - embora anteriormente fosse fácil fazer isso usando defaultsuma folha de estilo do usuário ou com uma @font-faceregra para monospace(que simplesmente redefinia o quemonospace significava sem tocar no estilo padrão em si, e assim permitiu que o comportamento padrão se aplicasse a essa outra fonte).

Eu visceralmente não gosto de ler grandes quantidades de texto definidas no Courier, então parece que no futuro terei que usar outro navegador para ler RFCs ...

Aristóteles Pagaltzis
fonte
Obrigado pela atualização, Aristóteles. Embora a resposta de Lri tenha sido muito boa, ela não envelheceu bem, então mudei o cheque para a sua resposta para direcionar futuros visitantes às informações mais atuais.
Carl Smith
Obrigado. Sim, eu usei a resposta de Lri por anos; infelizmente, a música parou agora. É ... lamentável, para dizer o mínimo, mas é assim que é.
Aristóteles Pagaltzis 14/01
12

As informações a seguir estavam corretas quando foram publicadas, mas agora só se aplicam a versões obsoletas do Safari.


Existem preferências não expostas para alterar as fontes e tamanhos de fonte padrão:

defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2StandardFontFamily Georgia
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2DefaultFontSize 16
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2FixedFontFamily Menlo
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2DefaultFixedFontSize 14

Outra opção é editar o arquivo CSS que define os estilos padrão (consulte Preferências> Avançado> Folha de estilo ), adicionando algo como isto, por exemplo:

@font-face {
   font-family: monospace;
   src: local('Menlo');
}

Essa regra faz com que qualquer elemento que use font-family: monospace(assim como elementos como <pre>e <code>por padrão) use Menlo. Apenas mude o nome da fonte (cuidado para manter as aspas) para o que você preferir.

Lri
fonte
1
De repente, ele não funciona para fontes adicionais instalados via Font Book em Mojave (10.14.2)
Ilya Vassilevsky
Veja a nova resposta de Aristóteles Pagaltzis (acima). Não são ótimas notícias.
Carl Smith