Existe uma maneira de editar arquivos SVG no Illustrator, onde você pode especificar uma classe CSS para cada caminho?
Eu já sei no Illustrator que, se você der um nome real ao nome da camada, o Illustrator usará esse nome como o ID do caminho, o que é bom se você não planeja reutilizar o ícone mais de uma vez na mesma página.
Minha solução atual é usar apenas o método IDs, mas depois converter os IDs em classes no meu editor de código, mas é muito chato ter que fazer toda vez que eu gerar meu sprite SVG.
Se isso não for possível no Illustrator, existem outros aplicativos que permitirão especificar isso? Ou talvez um pacote Grunt ou Gulp?
Parece que você pode fazer isso com o Inkscape com um hack , então eu posso ver se não há outras boas soluções por aí.
fonte
Respostas:
Eu faço isso com uma tarefa Grunt. Usando "grunt-text-replace", sou capaz de passar meus SVGs minificados (svgmin) por uma expressão regular personalizada que substitui todas as referências de classe ilegíveis por classes apropriadas.
No Illustrator, declare o nome da camada / objeto como class = "tree", por exemplo. Isso será exportado pelo Illustrator como id = "class =" tree "" . A tarefa grunhida abaixo cuidará disso e fará com que seja class = "tree" . Também estou colando abaixo algumas outras subtarefas que farão uma limpeza de ID (recomendado).
Em seguida, você pode chamar esta tarefa no seu Gruntfile como:
fonte
Parece que o link que Ian Dunn postou pode ser o seu bilhete. Aqui está um trecho dessa página :
O Illustrator pode exportar estilos gráficos como CSS em um elemento de estilo e aplicá-los através de classes no código SVG. É assim que você pode gerar classes no seu SVG exportado. Dependendo do que você deseja que essas classes façam, você pode defini-las em outro arquivo CSS e remover as definições de estilo do SVG exportado.
A página vinculada declara isso, mas, para fins de completude, o Illustrator só gera o elemento de estilo e as classes se você definir
CSS Properties: Style Element
na área Avançada (pode ser necessário clicarMore Options
) na caixa de diálogo Opções do SVG:Eu também observaria que o código gerado nunca será perfeito para todas as situações. O código escrito à mão tende a ser mais leve e fácil para os humanos lerem (se é isso que você procura). Eu recomendo ler o documento do usuário do Wikimedia Quibik sobre a limpeza manual de arquivos SVG e dar uma olhada no grunt-svgmin .
fonte
Acabei de encontrar este problema e encontrei a seguinte solução (para Illustrator CC):
Aplique "Estilos gráficos" nomeados aos caminhos que você deseja nomear e exporte o SVG com CSS interno. Por exemplo, um Estilo Gráfico chamado my-icon definirá uma
my-icon
classe interna e aplicará essa classe aos caminhos adequados.Exemplo com capturas de tela:
Crie um novo estilo gráfico:
Exportar como ... SVG:
Saída:
<defs><style>.my-icon{ fill:#000; }</style></defs> <path class="my-icon">...</path>
Fonte: https://www.viget.com/articles/5-tips-for-saving-svg-for-the-web-with-illustrator
CC: o illustrator usa os estilos gráficos definidos para criar classes nomeadas (inteligentes, úteis)
fonte
No Illustrator 21.0.0 (2017) e possivelmente em versões anteriores:
Os elementos no SVG receberão um atributo de classe com o valor "meu estilo". Em seguida, você pode usar CSS externo para substituir estilos.
Observe que, se o nome do seu estilo contiver um espaço, ele será convertido em um hífen.
fonte
Maneira simples de fazer isso, é semelhante à tarefa Grunt, mas ainda mais fácil:
Para todos os objetos que você deseja criar classe, forneça o nome, por exemplo: "myClassmainCircle" e "myClassmainStar". Após a exportação, substitua all: 'id = "myClass' por 'class ="'
O resultado será: class = "mainCirle" class = "mainStar"
fonte