Convertidor de mayúsculas y minúsculas
Cómo funciona
Escribe o pega un texto en el cuadro. La herramienta lo divide en palabras y lo convierte al instante a todas las variantes, una por fila: no tienes que elegir el destino, las ves todas y copias la que necesitas.
Las variantes disponibles: • MAYÚSCULAS: `MI VARIABLE`. • minúsculas: `mi variable`. • Iniciales en mayúscula (Title Case): `Mi Variable`. Cada palabra con la inicial en mayúscula y el resto en minúscula. • Como una oración (Sentence case): `Mi variable`. Solo la primera palabra lleva mayúscula, así que los nombres propios que vengan después también pasan a minúscula. • camelCase: `miVariable`. La convención de JavaScript, Java y Swift para variables y métodos. • PascalCase: `MiVariable`. Nombres de clases en C#, TypeScript, Java y Rust. • snake_case: `mi_variable`. Python, Ruby y columnas de SQL. • CONSTANT_CASE: `MI_VARIABLE`. Constantes y variables de entorno. • kebab-case: `mi-variable`. Clases CSS, atributos HTML y rutas de URL. • dot.case: `mi.variable`. Algunos archivos de configuración y los paquetes de Java. • Slug para URL: `mi-variable`. Como el kebab-case, pero sin acentos y solo con letras a-z y dígitos.
Cómo se separan las palabras. La herramienta parte el texto por los espacios, por los separadores típicos de los identificadores (guion, guion bajo, punto y barra), por el paso de letra a dígito, por el paso de minúscula a mayúscula (`miVariable` da `mi variable`) y por las siglas seguidas de una minúscula (`XMLParser` da `xml parser`). Por eso la conversión es reversible: `miUsuarioID` da `MiUsuarioId` en PascalCase, `mi-usuario-id` en kebab-case y `miUsuarioId` al volver.
Letras acentuadas. En las variantes de texto y en los identificadores, las letras acentuadas y la ñ se conservan tal cual (`año nuevo` da `añoNuevo`). La excepción es el slug para URL, que quita los acentos (`á` da `a`, `ñ` da `n`) para que el resultado sea seguro en una dirección web.
Qué convención usar. La decide el lenguaje y el equipo más que el gusto personal. JavaScript y Java piden camelCase para las variables y PascalCase para las clases. Python pide snake_case para todo salvo las clases. Rust prefiere snake_case para variables y funciones y PascalCase para los tipos. CSS usa kebab-case. Los nombres de tablas y columnas suelen ir en snake_case, porque casi todos los dialectos de SQL no distinguen mayúsculas en los identificadores y el kebab-case chocaría con el operador de resta. Los slugs de URL usan kebab-case en minúscula y sin diacríticos.
El texto se procesa por completo en tu navegador y no se sube a ningún sitio. La pestaña Red de las herramientas para desarrolladores confirma que no sale ninguna petición cuando escribes o copias.
Preguntas frecuentes
¿Cómo paso un texto de minúsculas a mayúsculas?
- Pega el texto en el cuadro y copia la fila MAYÚSCULAS con su botón. En la misma lista tienes también la inversa, minúsculas, y Iniciales en mayúscula para que cada palabra empiece con mayúscula. No hay que pulsar ningún botón de convertir: todas las variantes se calculan a la vez.
¿Qué formatos admite?
- Once: MAYÚSCULAS, minúsculas, Iniciales en mayúscula, Como una oración, camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, dot.case y slug para URL. Se muestran todos a la vez y cada uno tiene su botón de copiar.
¿Cómo convierto camelCase a snake_case?
- Pega el identificador y copia la fila snake_case: `nombreUsuarioActivo` pasa a `nombre_usuario_activo`. Funciona en cualquier dirección, porque la herramienta separa las palabras del texto de origen sin importar el formato en que estén escritas.
¿Qué diferencia hay entre camelCase y PascalCase?
- La primera letra. camelCase empieza en minúscula (`miVariable`) y PascalCase pone mayúscula en todas las palabras, también en la primera (`MiVariable`). Ambos unen las palabras sin separador y muchos lenguajes usan los dos: PascalCase para clases y tipos, camelCase para variables y métodos.
¿Qué diferencia hay entre kebab-case y un slug para URL?
- El slug es más estricto. Los dos ponen las palabras en minúscula y las unen con `-`, pero el slug elimina además todos los caracteres que no sean a-z o dígitos, es decir, quita los acentos (`á` da `a`, `ñ` da `n`, `ü` da `u`), suprime la puntuación no válida en una URL y reduce los separadores repetidos a uno. Usa kebab-case para clases CSS y atributos HTML, y el slug para rutas de URL.
¿Por qué se usa tanto snake_case en Python?
- Porque la PEP 8, la guía de estilo oficial de Python desde 2001, lo recomienda para funciones, variables y módulos, y reserva CamelCase para las clases. Encaja con la preferencia del lenguaje por la legibilidad explícita y permite distinguir de un vistazo los datos (snake) de los tipos (camel).
¿Se conservan bien los acentos y la ñ?
- Sí, en todas las variantes salvo el slug para URL. En camelCase, snake_case y el resto de los identificadores, las letras acentuadas y la ñ se mantienen como están, que es lo que quieres cuando trabajas con contenido en español. El slug las convierte a su letra base (`á` da `a`, `ñ` da `n`) para que el resultado sea seguro en una URL.
¿Se guarda mi texto en algún sitio?
- No. La conversión es JavaScript que se ejecuta en la pestaña de tu navegador. La herramienta no guarda estado: entra el texto, salen las 11 variantes y no se registra nada ni se escribe nada en localStorage. Abre la pestaña Red de las herramientas para desarrolladores y verás que no sale ninguna petición mientras escribes.
Convenciones de nombres por lenguaje y contexto
Qué formato usar para cada tipo de identificador en los lenguajes y contextos más habituales. Si dudas, sigue la convención que ya tenga el proyecto; el código que cruza lenguajes (FFI, API JSON) suele seguir la convención de quien lo consume.
| Contexto | Tipo de identificador | Convención | Ejemplo |
|---|---|---|---|
| JavaScript / TypeScript | Variables, funciones | camelCase | userName, getUserData() |
| JavaScript / TypeScript | Clases, interfaces, tipos | PascalCase | UserAccount, IUserRepo |
| JavaScript / TypeScript | Constantes | CONSTANT_CASE | MAX_RETRIES, API_BASE_URL |
| Python | Funciones, variables, módulos | snake_case | user_name, get_user_data() |
| Python | Clases | PascalCase | UserAccount |
| Python | Constantes | CONSTANT_CASE | MAX_RETRIES |
| Rust | Variables, funciones, módulos | snake_case | user_name, get_user_data() |
| Rust | Tipos, traits, enums | PascalCase | UserAccount, Iterator |
| Java | Variables, métodos | camelCase | userName, getUserData() |
| Java | Clases, interfaces | PascalCase | UserAccount |
| Java | Paquetes | minúsculas / dot.case | com.example.app |
| Java | Constantes | CONSTANT_CASE | MAX_RETRIES |
| C# / .NET | Métodos públicos, propiedades, tipos | PascalCase | UserAccount, GetUserData() |
| C# / .NET | Variables locales, parámetros | camelCase | userName |
| Ruby | Variables, métodos | snake_case | user_name, get_user_data |
| Ruby | Clases, módulos | PascalCase | UserAccount |
| Ruby | Constantes | CONSTANT_CASE | MAX_RETRIES |
| Go | Nombres exportados (públicos) | PascalCase | UserAccount, GetUserData() |
| Go | Nombres no exportados (privados) | camelCase | userAccount, getUserData() |
| CSS / HTML | Clases, ID, atributos | kebab-case | .user-account, [data-user-id] |
| HTML | Nombres de elementos | minúsculas | <div>, <span> |
| SQL | Tablas, columnas | snake_case | user_accounts, created_at |
| JSON / API REST | Claves de propiedades | camelCase o snake_case | userName / user_name |
| Variables de entorno | Todos los shells, .env | CONSTANT_CASE | DATABASE_URL, API_KEY |
| Nombres de archivo (portables) | Archivos de código | kebab-case o snake_case | user-account.ts, user_account.py |
| Rutas de URL | Slugs | Slug para URL | /blog/mi-primer-articulo |
| Configuración YAML | Claves | kebab-case o snake_case | max-retries: 3 |
Las convenciones salen de la guía de estilo oficial de cada lenguaje cuando existe (PEP 8, Effective Java, guías de API de Rust, Google Java Style, Microsoft .NET Framework Design Guidelines) y de la práctica dominante de la comunidad en el resto. Al contribuir a un proyecto, respeta la elección de su código: la coherencia importa más que la corrección al nombrar.