# Cursore

Il cursore, in informatica, è un simbolo che appare sullo schermo del dispositivo per indicare la posizione in cui viene inserito il testo digitato sulla tastiera o su cui ha effetto la pressione dei pulsanti del mouse o di qualunque altra periferica che possa muovere il cursore stesso.

## Tipologie
### Cursore del testo

Nella maggior parte delle interfacce della riga di comando o degli editor di testo, il cursore del testo, noto anche come accento circonflesso, è un trattino basso, un rettangolo pieno o una linea verticale, che può essere lampeggiante o fissa, indicando dove verrà posizionato il testo quando inserito (il punto di inserimento).
Un cursore di testo a linea verticale con una piccola appendice che punta a sinistra o a destra serve per indicare la direzione del flusso del testo su sistemi che supportano il testo bidirezionale, ed è quindi generalmente noto tra i programmatori come "cursore bidi". In alcuni casi, il cursore può essere suddiviso in due parti, ciascuna delle quali indica dove verrà inserito il testo da sinistra a destra e da destra a sinistra.

### Cursore del mouse

Il puntatore o il cursore del mouse riproduce i movimenti del dispositivo di puntamento, comunemente un mouse, touchpad o trackball.
Il puntatore "I-beam" (chiamato anche "cursore a I") è un cursore a forma di una "I" maiuscola in stile serif. Lo scopo di questo cursore è indicare che il testo sotto il cursore può essere evidenziato e talvolta inserito o modificato.

### Cursore 3D

L'idea di un cursore utilizzato come indicatore o punto di inserimento per nuovi dati o trasformazioni, come la rotazione, può essere estesa a un ambiente di modellazione 3D. Blender, ad esempio, utilizza un cursore 3D per determinare dove devono avvenire le operazioni future.

## Nelle interfacce di comando
### Interfacce testuali

Nelle interfacce a riga di comando, in cui l'interazione con la macchina è basata sulla digitazione a video di comandi, il cursore svolge una funzione indispensabile. In genere è costituito da una lineetta verticale od orizzontale, oppure un quadrato, solitamente lampeggianti. Durante la digitazione il cursore avanza, indicando sempre la posizione di inserimento del prossimo carattere. Il cursore può essere spostato all'interno del testo già digitato per mezzo di appositi tasti cursore, allo scopo di inserire nuovo testo oppure sostituire o rimuovere testo esistente. I tasti freccia sono un tipico caso, ma non l'unico, di tasti in grado di muovere il cursore.

### Interfacce grafiche

Nelle interfacce grafiche (GUI) è chiamato cursore o più propriamente puntatore un simbolo grafico (solitamente una freccia) che indica la posizione esatta su cui agisce l'eventuale pressione di un tasto del mouse, il cosiddetto click e relativo doppio click. In molti ambienti grafici l'aspetto del puntatore cambia in funzione del contesto in cui si trova, ovvero l'azione che viene compiuta con il click. Un cursore di tipo simile a quello usato nelle interfacce a riga di comando è presente anche nelle interfacce grafiche (contemporaneamente a quello del mouse) per definire il punto di inserimento del testo nelle caselle di immissione testo e nelle applicazioni (per esempio un editor di testo).

## Modifica coi Cascading Style Sheets

I CSS possono generare una serie di diversi cursori del mouse che l'utente vedrà appena arrivato sulla pagina HTML che li contiene:
| Categoria | Valore CSS | Descrizione |
| Generale | auto | Il browser determina il cursore da visualizzare in base al contesto corrente. |
| Generale | auto | Ad esempio, equivalente a text quando si passa il testo. |
| Generale | default | Cursore predefinito, in genere una freccia. |
| Generale | none | Nessun cursore viene visualizzato. |
| Collegamenti e stato | context-menu | Un menu contestuale è disponibile sotto il cursore. |
| Collegamenti e stato | help | Indicare l'aiuto è disponibile. |
| Collegamenti e stato | pointer | Ad esempio, utilizzato quando si passa con il mouse sui collegamenti, in genere una mano. |
| Collegamenti e stato | progress | Il programma è occupato in background ma l'utente può comunque interagire con l'interfaccia (a differenza di wait). |
| Collegamenti e stato | wait | Il programma è occupato (a volte una clessidra o un orologio). |
| Selezionare | cell | Indica che le celle possono essere selezionate. |
| Selezionare | crosshair | Cursore a croce, spesso utilizzato per indicare la selezione in una bitmap. |
| Selezionare | text | È possibile selezionare il testo di indicazione, in genere un raggio a I. |
| Selezionare | vertical-text | Indica che è possibile selezionare il testo verticale, in genere una trave a I laterale. |
| Trascinare e rilasciare | alias | Indica che è necessario creare un alias o un collegamento. |
| Trascinare e rilasciare | copy | Indica che qualcosa può essere copiato. |
| Trascinare e rilasciare | move | L'oggetto al passaggio del mouse può essere spostato. |
| Trascinare e rilasciare | no-drop | Cursore che mostra che un rilascio non è consentito nella posizione corrente. |
| Trascinare e rilasciare | not-allowed | Cursore che mostra che qualcosa non può essere fatto. |
| Ridimensionare e scorrere | all-scroll | Cursore che mostra che qualcosa può essere fatto scorrere in qualsiasi direzione (panoramica). |
| Ridimensionare e scorrere | col-resize | L'elemento / colonna può essere ridimensionato orizzontalmente. Spesso reso come frecce che puntano a sinistra ea destra con una barra verticale che la separa. |
| Ridimensionare e scorrere | row-resize | L'elemento / riga può essere ridimensionato verticalmente. Spesso reso come frecce che puntano su e giù con una barra orizzontale che le separa. |
| Ridimensionare e scorrere | n-resize | Qualche limite deve essere spostato. Ad esempio, il cursore se-resize viene utilizzato quando il movimento inizia dall'angolo sud-est del riquadro. |
| Ridimensionare e scorrere | e-resize | Qualche limite deve essere spostato. Ad esempio, il cursore se-resize viene utilizzato quando il movimento inizia dall'angolo sud-est del riquadro. |
| Ridimensionare e scorrere | s-resize | Qualche limite deve essere spostato. Ad esempio, il cursore se-resize viene utilizzato quando il movimento inizia dall'angolo sud-est del riquadro. |
| Ridimensionare e scorrere | w-resize | Qualche limite deve essere spostato. Ad esempio, il cursore se-resize viene utilizzato quando il movimento inizia dall'angolo sud-est del riquadro. |
| Ridimensionare e scorrere | ne-resize | Qualche limite deve essere spostato. Ad esempio, il cursore se-resize viene utilizzato quando il movimento inizia dall'angolo sud-est del riquadro. |
| Ridimensionare e scorrere | nw-resize | Qualche limite deve essere spostato. Ad esempio, il cursore se-resize viene utilizzato quando il movimento inizia dall'angolo sud-est del riquadro. |
| Ridimensionare e scorrere | se-resize | Qualche limite deve essere spostato. Ad esempio, il cursore se-resize viene utilizzato quando il movimento inizia dall'angolo sud-est del riquadro. |
| Ridimensionare e scorrere | sw-resize | Qualche limite deve essere spostato. Ad esempio, il cursore se-resize viene utilizzato quando il movimento inizia dall'angolo sud-est del riquadro. |
| Ridimensionare e scorrere | ew-resize | Indica un cursore di ridimensionamento bidirezionale. |
| Ridimensionare e scorrere | ns-resize | Indica un cursore di ridimensionamento bidirezionale. |
| Ridimensionare e scorrere | nesw-resize | Indica un cursore di ridimensionamento bidirezionale. |
| Ridimensionare e scorrere | nwse-resize | Indica un cursore di ridimensionamento bidirezionale. |
| Ingrandire | zoom-in | Indica che qualcosa può essere ingrandito (con lo zoom) in avanti o indietro. |
| Ingrandire | zoom-out | Indica che qualcosa può essere ingrandito (con lo zoom) in avanti o indietro. |
| Afferrare | grab | Indica che qualcosa può essere afferrato e trascinato per essere spostato. |
| Afferrare | grabbing | Indica che qualcosa può essere afferrato e trascinato per essere spostato. |