Hacer que una aplicación sea responsive implica optimizar el contenido y la interacción de la interfaz de usuario en base al tamaño y resolución de la pantalla.
Esto se relaciona con el concepto de usabilidad: el contenido debe adaptarse para pantallas más chicas (celulares, en modo vertical o apaisado), medianas (tablets) o grandes (monitores de 25”), a veces implica reordenar los controles, a veces sacar los elementos que pueden llegar a molestar la experiencia de usuario.
Algunos frameworks de presentación web que trabajan sobre esta idea son:
entre otros.
Manualmente, el css permite especificar estilos condicionales mediante el uso de media queries. Podés ver un ejemplo que discrimina css para desktops, tablets, teléfonos grandes y pequeños.