C贸mo no escribir plantillas para bootstrap

Pocas personas ahora est谩n dise帽ando un sitio web desde cero, 驴por qu茅, si hay un mont贸n de marcos CSS geniales? El m谩s popular entre ellos es bootstrap. Sin embargo, todos quieren que el sitio se vea 煤nico, no como los dem谩s, por eso a menudo se adhieren (lo mejor que pueden) a una plantilla gratuita o de pago, o su propio kit de UI.

Quiero hablar sobre algunos problemas que (desafortunadamente) ocurren incluso en las plantillas pagas, sin mencionar mis soluciones. El texto a continuaci贸n no pretende ser 煤nico, y es poco probable que sea de inter茅s para desarrolladores experimentados, pero puede ser 煤til para desarrolladores principiantes de front-end, dise帽adores de dise帽o y desarrolladores web de base amplia. Entonces, si a煤n est谩s interesado, 隆bienvenido!

Hist贸ricamente tenemos ...


Como regla general, si un sitio se ha desarrollado durante mucho tiempo, los requisitos para su apariencia cambian regularmente. Si, adem谩s de esto, los programadores cambian regularmente, entonces el c贸digo (en nuestro caso, css) se convierte en un desastre. En alg煤n lugar, clases de bootstrap, a veces clases de plantilla, todo esto se diluye con muletas de varias generaciones de dise帽adores de dise帽o y se condimenta con estilos en l铆nea. Los intentos de cambiar algo o agregar uno nuevo conducen a largos juegos m谩gicos en "隆adivina qu茅 clases necesitas poner en este bloque html!". Quiero tirar todo y reescribirlo desde cero. Pero aqu铆, de hecho, busqu茅 agregar r谩pidamente nuevos campos al formulario, tengo suficientes tareas para el backend ... En realidad, consideraremos la raz贸n que me llev贸 a escribir este art铆culo, en el primer ejemplo.

Tama帽o de entrada


Entonces, tenemos una vista est谩ndar de elementos de formulario, que queremos cambiar un poco, por ejemplo, reducir la altura. 驴Cu谩les son las formas de hacer esto para que las entradas correspondan a la ballena UI?

隆Puedes insertar estilos en l铆nea! Ser谩 muy divertido, 隆luego copie todo este pa帽o en cada entrada!

Alguien se reir谩, pero regularmente veo tales decisiones. Afortunadamente no en este caso, pero lo hace. 驴Qu茅 pasa si hacemos esto? Tendr谩 que copiar descripciones de estilo largas en cada entrada, inflando la plantilla y haci茅ndola menos legible.

隆Escribamos nuestra propia clase, en la que describiremos la configuraci贸n de altura necesaria, y al mismo tiempo cambiaremos el tama帽o de fuente!

Si Es el. "H40_px-16". Por el nombre de la clase, 驴queda claro de inmediato qu茅 hace? Conoc铆 algo como esto cuando intentaba entender por qu茅 las nuevas entradas son un poco m谩s gruesas de lo necesario. Mir茅 el c贸digo en la misma plantilla y lo encontr茅. 驴Qu茅 consecuencias nos esperan en este caso? En principio, nada cr铆tico. En cada clase de elementos de formulario, adem谩s de "control de formulario", agregaremos "h40_px-16". Necesito recordar, o documentar. 驴Y si hay un requisito para hacer todos los elementos del formulario con un fondo verde? Simplemente agregue otra clase, "b_g". Y luego uno m谩s ...

Extender clases existentes para elementos de formulario?

Es extremadamente raro ver esta soluci贸n, aunque me parece que est谩 en la superficie. Y en mi opini贸n, lo m谩s correcto. Esto nos permite ahorrar en la cantidad de clases que deben especificarse en el elemento, pero lo m谩s importante es que reduce la cantidad de perplejidad entre los desarrolladores que intentan trabajar con este c贸digo. Si el cambio requerido afecta a todos los elementos de este tipo, simplemente agregamos nuestro propio conjunto de reglas para "control de formulario", y todas las entradas cambian su altura, fuente, fondo, etc.

Soluci贸n personalizada


De acuerdo con el kit de interfaz de usuario, debe agregar una soluci贸n innovadora que nunca antes se hab铆a visto en el sitio. Y est谩 escrito desde cero. Enserio? No, puedo permitir esto si usa pureCSS, un marco bueno pero minimalista, y necesita implementar algo que no est谩 incluido en 茅l. Pero si usa bootstrap, con una probabilidad extremadamente alta, solo necesita volver a leer la documentaci贸n.

Veamos una situaci贸n extremadamente descuidada en la que el sitio tiene su propia implementaci贸n de insignias. Con bootstrap conectado. Y as铆, uno de los desarrolladores que no particip贸 en la creaci贸n de estas insignias necesitaba agregarlas en alg煤n lugar del sitio.

  1. Primero, mira la documentaci贸n de arranque y copia la soluci贸n desde all铆.
  2. Al ver que visualmente esto no corresponde a la ballena UI, busca documentaci贸n sobre la soluci贸n innovadora utilizada.
  3. Si esta documentaci贸n no es (y probablemente no lo sea), busca en el c贸digo ejemplos de c贸mo se implementa.
  4. Despu茅s de copiar la clase beijik deseada, ve que la insignia ahora es correcta, pero azul, y necesita rojo.
  5. Despu茅s de encontrar el archivo css que describe las clases para la interfaz de usuario de la ballena, detecta que no se coloc贸 el color rojo y suspirando agrega la clase "beijik-red"

Ahora, comparemos esto con la situaci贸n en la que la clase de insignia se redefini贸 para su propia implementaci贸n de insignia, y la implementaci贸n de color se describi贸 en la documentaci贸n:

  1. Primero, mira la documentaci贸n de arranque y copia la soluci贸n desde all铆.
  2. La documentaci贸n encuentra c贸mo agregar rojo: insignia-rojo

Aqu铆 examinamos un ejemplo en el que es necesario no solo cambiar la soluci贸n preparada, sino tambi茅n expandirla, ya que no estamos satisfechos con la funcionalidad lista para usar (las insignias en bootstrap3 no tienen un color personalizado). En este caso, de todos modos, la mejor soluci贸n sigue siendo anular la clase existente, y solo despu茅s de eso, agregar la suya.

Por supuesto, los ejemplos que he dado son bastante refinados, pero realmente encontr茅 una situaci贸n en la que primero busqu茅 una soluci贸n en la documentaci贸n de bootstrap, luego en la documentaci贸n de la plantilla utilizada en el sitio (afortunadamente, hab铆a documentaci贸n para ello), luego busqu茅 archivos css donde y c贸mo se redefini贸 el comportamiento est谩ndar y c贸mo se implement贸 el an谩logo, pero al final escrib铆 mis propios estilos para devolver (!) las posibilidades que originalmente ten铆an.

Si no desea perjudicar a sus colegas y quiere acelerar el trabajo del equipo en su conjunto, cumpla con las siguientes reglas al crear sus propios estilos para el sitio:

  • Compruebe c贸mo se implementa la funcionalidad necesaria en el marco utilizado (recuerde, lo m谩s probable es que est茅 all铆).
  • Encuentre qu茅 clases deben redefinirse para llevar el aspecto al deseado.
  • Si la funcionalidad no se implementa o no se implementa por completo, coordine con sus colegas una forma conveniente de expandir la funcionalidad e intente documentarla para el futuro.
  • Si la funcionalidad no es necesaria en todas partes, sino solo en una p谩gina espec铆fica, col贸quela en un archivo separado y con茅ctela / rec贸jala (sin estilos en l铆nea, por favor)

Ep铆logo


Todo lo anterior es mi opini贸n personal. No soy un desarrollador front-end profesional y, por lo general, encuentro html y css cuando agrego alguna funcionalidad nueva: es m谩s conveniente para m铆 configurar de inmediato tanto el frente como la parte posterior, y luego asignarlo para peinar el dise帽o. Si su equipo ha establecido procesos, describi贸 las reglas de un buen c贸digo, compil贸 pautas para todos los desarrolladores y todo pasa por una revisi贸n de c贸digo, puede re铆rse de este art铆culo, no me importa. Si el art铆culo resulta 煤til para alguien, no fue en vano que expuse mis pensamientos confusos.

Source: https://habr.com/ru/post/es434604/


All Articles