Skip to content

InputText

  • InputText 는 텍스트 입력 도구인 Input을 확장하여 구현 했습니다.

Basic

vue
<script setup lang="ts">
import { ref } from 'vue';
import { InputText } from '@jennifersoft/vue-components-v2';
const textValue = ref('');
</script>
<template>
    <div class="flex items-center gap-2">
        <input-text v-model="textValue" :placeholder="'input text'" />
    </div>
</template>

States

vue
<script setup lang="ts">
import { ref } from 'vue';
import { InputText } from '@jennifersoft/vue-components-v2';
const textValue1 = ref('');
const textValue2 = ref('required');
const textValue3 = ref('readonly');
const textValue4 = ref('invalid');
const textValue5 = ref('disabled');
</script>
<template>
    <div class="flex items-center gap-2">
        <div class="flex items-center h-12">
            <label class="w-32 font-bold">inactive</label>
            <input-text
                class="w-80"
                v-model="textValue1"
                :placeholder="'input text'"
            />
        </div>
        <div class="flex items-center h-12">
            <label class="w-32 font-bold">required</label>
            <input-text
                class="w-80"
                v-model="textValue2"
                :required="true"
                :placeholder="'input text'"
            />
        </div>
        <div class="flex items-center h-12">
            <label class="w-32 font-bold">readonly</label>
            <input-text
                class="w-80"
                v-model="textValue3"
                :readonly="true"
                :placeholder="'input text'"
            />
        </div>
        <div class="flex items-center h-12">
            <label class="w-32 font-bold ">invalid</label>
            <input-text
                class="w-80"
                v-model="textValue4"
                :invalid="true"
                :placeholder="'input text'"
            />
        </div>
        <div class="flex items-center h-12">
            <label class="w-32 font-bold">disable</label>
            <input-text
                class="w-80"
                v-model="textValue5"
                :disabled="true"
                :placeholder="'input text'"
            />
        </div>
    </div>
</template>

Size

vue
<script setup lang="ts">
import { ref } from 'vue';
import { InputText } from '@jennifersoft/vue-components-v2';
const largeValue = ref('');
const mediumValue = ref('');
const smallValue = ref('');
</script>
<template>
    <div class="flex flex-col gap-2">
        <div class="flex items-center h-12">
            <label class="w-32 font-bold">Large</label>
            <input-text
                class="w-80"
                v-model="largeValue"
                :size="'large'"
                :placeholder="'input text'"
            />
        </div>
        <div class="flex items-center h-12">
            <label class="w-32 font-bold">Medium</label>
            <input-text
                class="w-80"
                v-model="mediumValue"
                :size="'medium'"
                :placeholder="'input text'"
            />
        </div>
        <div class="flex items-center h-12">
            <label class="w-32 font-bold">Small</label>
            <input-text
                class="w-80"
                v-model="smallValue"
                :size="'small'"
                :placeholder="'input text'"
            />
        </div>
    </div>
</template>

textAlign

textAlign 속성을 설정하여 텍스트 정렬 방식을 설정할 수 있습니다.

vue
<script setup lang="ts">
import { ref } from 'vue';
import { InputText } from '@jennifersoft/vue-components-v2';
const textValue6 = ref('');
</script>
<template>
    <input-text
        v-model="textValue6"
        :text-align="'right'"
        :placeholder="'input text'"
    />
</template>

label

vue
<script setup lang="ts">
import { ref } from 'vue';
import { InputText } from '@jennifersoft/vue-components-v2';
const compositionValue1 = ref('');
</script>
<template>
    <div class="flex gap-2">
        <div class="flex flex-col ">
            <label class="text-xs">Label</label>
            <input-text
                class="w-80"
                v-model="compositionValue1"
                :size="'medium'"
                :placeholder="'input text'"
            />
        </div>
    </div>
</template>

message

vue
<script setup lang="ts">
import { ref } from 'vue';
import { InputText } from '@jennifersoft/vue-components-v2';
const compositionValue3 = ref('');
const compositionValue4 = ref('');
</script>
<template>
    <div class="flex gap-2">
        <div class="flex flex-col ">
            <input-text
                class="w-80"
                v-model="compositionValue3"
                :size="'medium'"
                :placeholder="'input text'"
            />
            <label class="text-xs block"
                >Please enter a guide description</label
            >
        </div>
        <div class="flex flex-col ">
            <input-text
                class="w-80"
                v-model="compositionValue4"
                :size="'medium'"
                :placeholder="'input text'"
        />
            <label class="text-xs block text-[--red-800]"
                >Please enter a guide description</label
            >
        </div>
    </div>
</template>

label + message

vue
<script setup lang="ts">
import { ref } from 'vue';
import { InputText } from '@jennifersoft/vue-components-v2';
const compositionValue5 = ref('');
const compositionValue6 = ref('');
</script>
<template>
    <div class="flex gap-2">
        <div class="flex flex-col ">
            <label class="text-xs" for="input5">Label</label>
            <input-text
                id="input5"
                class="w-80"
                v-model="compositionValue5"
                :size="'medium'"
                :placeholder="'input text'"
            />
            <label class="text-xs block"
                >Please enter a guide description</label
            >
        </div>
        <div class="flex flex-col ">
            <label class="text-xs" for="input6">Label</label>
            <input-text
                id="input6"
                class="w-80"
                v-model="compositionValue6"
                :size="'medium'"
                :placeholder="'input text'"
            />
            <label class="text-xs block text-[--red-800]"
                >Please enter a guide description</label
            >
        </div>
    </div>
</template>

input - when invalid(true)

vue
<script setup lang="ts">
import { ref } from 'vue';
import { InputText } from '@jennifersoft/vue-components-v2';
const compositionValue7 = ref('');
const invalid = ref(true);
</script>
<template>
    <div class="flex gap-2">
        <div class="flex flex-col ">
            <label class="text-xs" for="input7">Label</label>
            <input-text
                id="input7"
                class="w-80"
                :invalid="invalid"
                v-model="compositionValue7"
                :size="'medium'"
                :placeholder="'input text'"
            />
            <label class="text-xs block text-[--red-800]"
                >Please enter a guide description</label
            >
        </div>
    </div>
</template>